1
Programowanie w MATLAB-
ie
dr inż. Henryk Olszewski
2
Ćwiczenie 1: Instrukcja if
Obliczyć wartość funkcji f(x) określoną wzorem:
1
x
dla
2
x
3
,
1
x
dla
x
3
x
dla
6
x
)
x
(
f
2
2
3
Ćwiczenie 1: Instrukcja if
Obliczyć wartość funkcji f(x) określoną wzorem:
» if x>3
» f=x.*x-6;
» elseif x>=-1 & x<=3
» f=x;
» else
» f=x.*x-2;
» end
1
x
dla
2
x
3
,
1
x
dla
x
3
x
dla
6
x
)
x
(
f
2
2
4
Ćwiczenie 2: Instrukcja if
Za pomocą funkcji reshape utworzyć z elementów wektora
y macierz Z o rozmiarze w*k. Sprawdzić, czy wektor y
zawiera w*k elementów:
5
Ćwiczenie 2: Instrukcja if
Za pomocą funkcji reshape utworzyć z elementów wektora y
macierz Z o rozmiarze w*k. Sprawdzić, czy wektor y zawiera w*k
elementów:
» if length(y)==w*k
» Z=reshape(y,w,k)
» else
» ‘Nie można wykonac operacji!’
» end
6
Ćwiczenie 3: Instrukcja switch
Utwórz macierz A o rozmiarze n*n. W zależności od wartości
zmiennej c ma być to:
a) gdy c=0
- macierz o wszystkich elementach równych
0;
b) gdy c=1 - macierz o wszystkich elementach równych 1;
c) gdy c=2 - macierz jednostkowa,
d) dla innych wartości c - macierz wypełniona liczbami
pseudolosowymi.
7
Ćwiczenie 3: Instrukcja switch
Utwórz macierz A o rozmiarze n*n:
» switch c
» case 0
» A=zeros(n)
» case 1
» A=ones(n)
» case 2
» A=eye(n)
» otherwise
» A=rand(n)
» end
8
Ćwiczenie 4: Pętla for
Utwórz macierz A o rozmiarze 5x4 taką, że:
1
j
i
j
i
A
ij
9
Ćwiczenie 4: Pętla for
Utwórz macierz A o rozmiarze 5x4 taką, że:
» for i = 1:5,
»
for j = 1:4,
»
A(i,j) = (i+j)/(i+j+1);
»
end
» end
1
j
i
j
i
A
ij
10
Ćwiczenie 5: Pętla while
Obliczyć wartość setnego elementu ciągu Fibonacciego
danego wzorem:
2
n
dla
u
u
u
...
1
u
1
u
2
n
1
n
n
2
1
11
Ćwiczenie 5: Pętla while
Obliczyć wartość setnego elementu ciągu Fibonacciego danego wzorem:
» u1=1; u2=1; i=2; n=100;
» while i<n
» u3=u1+u2;
» u1=u2;
» u2=u3;
» i=i+1;
» end
» u3
Otrzymujemy wartość:
u3 = 3.5422e+020
2
n
dla
u
u
u
...
1
u
1
u
2
n
1
n
n
2
1
12
Ćwiczenie 6: Skrypty
Napisać skrypt kwadrat, obliczający pierwiastki równania
kwadratowego. W skrypcie wykonaj następujące polecenia:
a) wczytaj współczynniki równania kwadratowego a, b, c;
b) wyświetl pierwiastki równania x1 i x2.
Powyższy skrypt umieścić w pliku kwadrat.m.
13
Ćwiczenie 6: Skrypty
%Skrypt oblicza rzeczywiste pierwiastki
%równania kwadratowego y=a*x^2+b*x+c
a=input(‘a=‘); b=input(‘b=‘); c=input(‘c=‘);
delta=b.*b-4*a.*c;
if delta>0
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
disp(‘x1=‘), disp(x1)
disp(‘x2=‘), disp(x2)
elseif delta == 0
x1=-b/(4*a); disp(‘x1=x2=‘), disp(x1)
else
disp(‘Równanie nie ma pierwiastków rzeczywistych’)
end
14
Ćwiczenie 6: Skrypty
Po wykonaniu każdego polecenia w programie MATLAB następuje przejście do
nowego wiersza, aby uzyskać elegancki efekt działania skryptu, należy
połączyć wyświetlanie tekstu i liczb w jedno polecenie. W tym celu należy
zmienne liczbowe x1 i x2 przekształcić w łańcuchy znakowe. Argumentem
funkcji disp może być tylko jedna zmienna, łańcuchy te należy następnie
połączyć. Wówczas wiersze skryptu przyjmą następującą postać:
disp(strcat(‘x1=‘,nim2str(x1))
disp(strcat(‘x2=‘,nim2str(x2))
a uruchomienie skryptu spowoduje wyświetlenie:
x1=-2
x2=1
W celu wyświetlenia wyników w jednym wierszu należy dokonać dalsze zmiany:
disp(strcat(‘x1=‘,nim2str(x1), ‘x2=‘,nim2str(x2)))
co da następujący wynik:
x1=-2, x2=1
15
Ćwiczenie 7: Funkcje
Zdefiniować funkcję prosta, która oblicza współczynniki A,
B, C prostej Ax+By+C=0 przechodzącej przed dwa dane
punkty P1(x1,y1) i P2(x2,y2). Powyższa funkcję zapisać w
pliku prosta.m.
16
Ćwiczenie 7: Funkcje
Zdefiniować funkcję prosta, która oblicza współczynniki A, B, C prostej
Ax+By+C=0 przechodzącej przed dwa dane punkty P1(x1,y1) i
P2(x2,y2). Powyższa funkcję zapisać w pliku prosta.m:
function [A, B, C]=prosta(x1,y1,x2,y2)
%Wynikiem działania funkcji prosta o 4 parametrach
%wejściowych będących współrzędnymi dwóch punktów
%P1(x1,y1) i P2(x2,y2) są współczynniki A, B, C
%prostej Ax+By+C=0 przechodzącej przez te punkty
A=y2-y1;
B=x1-x2;
C=y1.*x2-y2.*x1;
Wywołanie funkcji:
» [A1,B1,C1]=prosta(1,1,2,2)
spowoduje wyznaczenie:
A1=1
B1=-1 C1=0
17
Ćwiczenie 8: Funkcja inline
Zdefiniować funkcję dwóch zmiennych f2(x,y)=x2+y2 oraz
obliczyć jej wartość dla x=3, y=-1:
18
Ćwiczenie 8: Funkcje inline
Zdefiniować funkcję dwóch zmiennych f2(x,y)=x2+y2 oraz
obliczyć jej wartość dla x=3, y=-1:
» f2=inline(‘x.^2+y.^2’);
» z=f2(3,-1)
f2 =
Inline function
f2(x,y) = x.^2+y.^2
z =
10
19
Dziękuję za uwagę