Państwowa Wyższa Szkoła Zawodowa w Elblągu
Instytut Informatyki Stosowanej
Zbiór zadań z
podstaw programowania
w języku MATLAB
(wersja robocza 22.10.2006 r.)
poniższe materiały w obecnym stanie nie nadają się do publikacji udostępniam je tylko dlatego, aby ułatwić przygotowanie się do sprawdzianiku !!!
ROBERT FIDYTEK
Elbląg 2006
© Robert Fidytek
1. Zmiennej a przypisz wartość 5
>> a=5
2. Zmiennej b przypisz wartość 0,25
>> b=0.25
3. Zmiennej c przypisz wartość sin(π/2)
>> c=sin(pi/2)
4. Uzyskaj skrócone informacje na temat wszystkich istniejących zmiennych
>> who
5. Usuń z pamięci zmienną a
>> clear a
6. Uzyskaj szczegółowe informacje na temat wszystkich istniejących zmiennych
>> whos
7. Zapisz zmienne do pliku zmienne.mat
>> save zmienne.mat
8. Usuń z pamięci wszystkie zmienne
>> clear
9. Wczytaj dane z pliku zmienne.mat
>> load zmienne.mat
10. Przeczytać opis funkcji sqrt
>> help sqrt
11. Sprawdź jaką minimalną i maksymalną liczbę rzeczywistą dodatnią można zapisać
>> realmin, realmax
12. Przedstaw liczbę 12.25 w trzech różnych postaciach używając polecenia format.
>> format long; 12.25
>> format short e; 12.25
>> format rat; 12.25
>> format short; %przywracamy domyslny format 13. Dane są przyprostokątne a i b w pewnym trójkącie prostokątnym (np.: a=3, b=4).
Napisać instrukcję obliczającą długość przeciwprostokątnej c.
>> sqrt(a*a+b*b)
14. Oblicz resztę z dzielenia a przez b (np.: a=11.4, b=3)
>> mod(a,b)
© Robert Fidytek
15. Oblicz sumę kodów ASCII dla łańcucha ‘Student’
>> sum (double(‘student’))
16. Mając zmienne s1 = Teoretyczne, s2 = podstawy, s3 = informatyki, podaj długość zdania jakie utworzą
>> length(strcat(s1,s2,s3))
17. Wyświetl liczbę wystąpień litery a w zdaniu ‘Teoretyczne podstawy informatyki’
>> zdanie = ‘Teoretyczne podstawy informatyki’; litera=‘a’;
>> length(findstr(zdanie,litera))
18. Zsumuj liczbę a=1,52 i liczbę zapisaną jako łańcuch znaków b=’1,72’. Wynik zaokrąglij w górę
>> ceil(a+str2double(b))
WEKTORY
19. Wygenerować wektor v liczb całkowitych od 25 do 52.
>> v=[25:52]
a) obliczyć długość wektora v
>> length(v)
b) znaleźć element największy w wektorze v
>> max(v)
c) znaleźć element najmniejszy w wektorze v
>> min(v)
d) obliczyć sumę wszystkich elementów wektora v
>>sum(v)
e) obliczyć iloczyn wszystkich elementów wektora v
>>prod(v)
f) obliczyć średnią ze wszystkich elementów wektora v
>>mean(v)
20. Wygenerować wektor liczb rzeczywistych:
v=[1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2]
>> v=1:0.1:2
21. Oblicz sumę liczb parzystych z przedziału <2,100>
>> sum(2:2:100)
22. Oblicz średnią arytmetyczną liczb nieparzystych z przedziału od <1,100>
>> mean(1:2:99)
23. Niech s będzie dowolnym łańcuchem znaków (np.: s=’Jola’).
Napisać instrukcję obliczającą iloczyn kodów ASCII słowa s.
© Robert Fidytek
24. Niech n będzie dowolną liczbą naturalną (np.: n=5).
Napisać instrukcję obliczającą n! (n silnia).
>> prod(1:n)
25. Obliczyć wartość wyrażenia dla x=1, 1.3, 1.6, 1.9, 2.2, 2.5, 2.8, 3.1, 3.4, 3.7, 4.
>> x=1:0.3:4
a) ln(x2+x+1)
>> log(x.*x+x+1)
b) sin(x2)+cos(x2)
>> sin(x.*x)+cos(x.*x)
c) sin2x+cos2x
>> sin(x).^2+cos(x).^2
d) ex *(1+sin5x)
>> exp(x).*(1+sin(5*x))
26. Oblicz wartość funkcji y=sin(x)+ln(√cos(x)) dla liczb -5 π,-4 π, -3 π ....,5 π
>> x=-5*pi:pi:5*pi; y=sin(x)+log2(sqrt(cos(x))) 27. Wygeneruj 20 pierwszych wyrazów ciągu an=(-1)n+1*(2n-1)
>> n=1:20; an=((-1).^(n+1)).*(2*n-1)
MACIERZE
28. Wygeneruj macierz dwuwierszową o wyrazach od 1 do 6 w pierwszym wierszu i o wyrazach od 2 do 12 (co 2) w drugim wierszu
>> A=[1:6;2:2:12]
29. W macierzy magicznej A o rozmiarach 5x5 nadaj elementowi A3,5 wartość 11
>> A=magic(5), A(3,5)=11
30. Utwórz kwadratową macierz jednostkową A o rozmiarze 5x5.
>> A=eye(5)
31. Utwórz macierz A o rozmiarze 3x7 wypełnioną jedynkami
>> A=ones(3,7)
32. Wyznaczyć liczbę wierszy i kolumn w macierzy A
>> [k,w]=size(A)
33. Utwórz macierz D o rozmiarze 4x5 budując ją z macierzy: A=[1 1 1;1 1 1], B=[2 2;2 2], C=[3 3 3 3 3;3 3 3 3 3]
>> D=[A B;C] % należy pamiętać o zgodności wymiarów 34. Niech A=[1:10;11:20;21:30;31:40]
a) utworzyć macierz B składającą się z kolumn macierzy A: 1-4 oraz 7
>> B=A(:,[1:4 7])
© Robert Fidytek
b) utworzyć macierz C z elementów macierzy A leżących na przecięciu wierszy 1,3 z kolumnami 1-3 i 5-7
>> C=A([1 3],[1:3 5:7])
35. Usunąć z macierzy A=[1:2:20;1:3:30]’ drugi i piąty wiersz
>> A([2 5],:)=[]
36. Usunąć z macierzy A=[1:2:20;1:3:30] drugi wiersz oraz drugą i trzecią kolumnę
>> A=A(1,[1:2 5:10])
37. Wygenerować macierz losową A o rozmiarze 2x4 i macierz B o rozmiarze 4x2
>> A=rand(2,4), B=rand(4,2)
a) Obliczyć A*B, B*A
>> B*A; B*A
b) Dokonać transpozycji macierzy A -> AT
>> A=A'
c) Obliczyć A+B, A-B
>> A+B; A-B
38. Niech A=[1 2 3;4 5 6;7 8 9]
g) dodać do każdego elementu 10
>> A=A+10
h) do każdego elementu o nieparzystych indeksach dodać 20
>> A(1:2:3,1:2:3)=A(1:2:3,1:2:3)+20
i) obliczyć pierwiastek z każdego elementu
>> sqrt(A)
j) obliczyć wartość każdego elementu podniesioną do kwadratu
>> A.^2
39. Niech x=[1 2 3 4]’, y=[5 6 7 8]’
a) dodać sumę elementów x do sumy elementów y
>> sum(x)+sum(y)
b) podnieść każdy element x do potęgi odpowiadającego elementu y
>> x.^y
c) obliczyć z, jako wynik mnożenia elementów x przez odpowiadające im elementy y
>> z=x.*y
d) obliczyć x'*y-z i zinterpretować wynik
obliczenia sprowadzają się do: 70-z
40. Wylosować macierz A o rozmiarze 5x4.
a) znaleźć element największy w macierzy A
>> max(A(:))
b) znaleźć element najmniejszy w macierzy A
>> min(A(:))
c) obliczyć średnią ze wszystkich elementów w macierzy A
>> mean(A(:))
d) obliczyć mendianę ze wszystkich elementów w macierzy A
>>
© Robert Fidytek
e) obliczyć odchylenie standardowe ze wszystkich elementów w macierzy A
>>
41. Dane są macierze A=[20 72 16 27;20 64 62 11] i B=[24 72 89 52;31 62 74 10].
Wyznacz liczbę c, która będzie największą liczbą z obu macierzy
>> c=max([max(max(A)') max(max(B)')]) 42. Utworzyć macierz A składającą się z trzech kolumn: w pierwszej kolumnie umieść liczby od 1 do 10, w drugiej pierwiastki kwadratowe tych liczb, a w 3 ich logarytm o podstawie 2.
>> A = [1:10; sqrt(1:10); log2(1:10)]'
43. Wyzeruj wszystkie liczby z macierzy magicznej 5x5, oprócz tych zawartych na głównej przekątnej.
>> tril(triu(magic(5)))
44. Z macierzy magicznej o rozmiarach 4x4, wyświetl rosnąco, liczby pierwsze.
>> A = magic(4); B = A( : ); sort(B(find(isprime(A( : ))))) 45. Kody ASCII słowa „Kot”, macierz B=[73 21 13] i liczby 41, 35 i 91 są trzema wierszami pewnej macierzy. Zsumuj wartości leżące na przekątnej diagonalnej.
>> sum(diag([double('Kot');B;41 35 91])) 46. Wygeneruj dowolną macierz A o rozmiarach 2x2, następnie powiel ją 2 razy w pionie i poziomie i zamień na wektor (1x16).
>> A=[1 2;3 4]; B= reshape(repmat(A,2,2),1,16) 47. Zbadaj czas generowania macierzy magicznej o rozmiarze 19
>> tic, a=magic(19), toc
MACIERZE ZESPOLONE
48. Wprowadzić dowolną macierz zespoloną A o rozmiarze 4x2.
LINKI
http://www.ise.pw.edu.pl/dydaktyka/ptk/L12Smatl.html
http://neo.dmcs.p.lodz.pl/mn/laboratorium.htm
http://www.if.pwr.wroc.pl/~kotulska/matlab/lista1.pdf
http://www.pg.gda.pl/~kmb/polish/skrypt.pdf
http://ghnet.pl/~blazej/matlab/skrypt.pdf
© Robert Fidytek
1. Zdefiniować funkcję inkrementacji: inc(5)
Utwórz macierz trójwymiarową 3x2x2 gdzie na 1 stronie będą same 1, na 2 stronie same 2, a na 3 same 3. Następnie dodaj wszystkie elementy tej macierzy.
Rozwiązanie : sum(A( : ))
© Robert Fidytek