Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in...
Transcript of Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in...
![Page 1: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/1.jpg)
Uvod v Matlab
![Page 2: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/2.jpg)
Uvod v Matlab• Matlab - matrix laboratory
- osnovna enota za delo je polje (array) - enostavno delo z vektorji in matrikami
• Podpora:
Podjetje MathWorks:
http://www.mathworks.com
![Page 3: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/3.jpg)
Uvod v Matlab
Uporaben za:
• matematika in računanje• razvoj algoritmov (tudi v C-ju)• zajemanje podatkov• modeliranje in simulacija• obdelava podatkov, vizualizacija (2D, 3D)• grafični uporabniški vmesniki• razvoj aplikacij z močno podporo
uporabniku
![Page 4: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/4.jpg)
Razvojno okolje
• Desktop/Desktop Layout/Default
• Command Window
• Workspace
• Current Directory
• Command History
![Page 5: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/5.jpg)
M datoteke• File/New/M-file• Na začetek datoteke napišemo komentar, ki
opisuje kaj datoteka izvaja
% Komentar• Datoteko shranimo v delovnem prostoru pod
končnico .m • Opis datoteke:
help ime_datoteke
![Page 6: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/6.jpg)
Uporaba pomoči
• Pomoč v obliki html strani
• Pomoč za znan ukaz
help sin
doc sin
• Iskanje ukaza
lookfor sin
![Page 7: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/7.jpg)
![Page 8: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/8.jpg)
Vpis skalarjev• Prireditev vrednosti spremenljivki:
x = 10
y = -20; Ne izpiše ponovno.
X = 1.07; Decimalna števila se vpisujejo s piko!
Matlab razlikuje velike in majhne črke!
• Vpis števil z desetiško potenco vpišemo kot:
d = 5e-4;
4105 −⋅=d
![Page 9: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/9.jpg)
Kompleksna števila• Kompleksna enota je i ali j:
ija = 5+7i;b = 1.123e-2 +j*1.123;
• Računamo na enak način kot z realnimi števili
• real (a)• imag(a)• angle(a)
![Page 10: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/10.jpg)
Osnovne operacije
• Seštevanje, odštevanje, množenje, deljenje:
a+b
a-b
a*b
a/b• Potenciranje
a^5.78
b^d
![Page 11: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/11.jpg)
Osnovne operacije• Matematične funkcije (help elfun)
- Kvadratni koren sqrt(a)
- Eksponentna funkcija exp(a)
- Naravni logaritem log(a)
- Desetiški logaritem log10(a)
![Page 12: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/12.jpg)
Vpis vektorjev• Vpis vrstičnega vektorja
x=[1,2,3,4]
• Vpis stolpičnega vektorja
y=[10;20;30;40]
• Avtomatsko generiranje vektorja
w=[0:0.1:1]
• Transponiranje vektorja
transp_x = x’
![Page 13: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/13.jpg)
Delo z vektorji
• Vsota vseh členov vektorja
sum(A)• Dolžina vektorja
length(A)• Dimenzija vektorja ali matrike
size(A)
![Page 14: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/14.jpg)
Delo z vektorji
• Seštevanje vektorjev
x+y• Množenje vektorjev
x*y’, x.*y• Prištevanje, odštevanje, množenje, deljenje
vektorja s skalarjem
x+a, x*a, x/a
![Page 15: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/15.jpg)
Vpis matrike• Vpis matrike A
A=[1, 2, 3; 4, 5, 6; 7, 8, 90]
• Dimenzije matrike
size(A)
• Determinanta matrike
det(A)
• Inverzna matrika
inv_A=inv(A)
![Page 16: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/16.jpg)
Matematične operacije z matrikami
• Množenje, deljenje, seštevanje, odštevanje matrik
inv_A*A, A-inv_A, ...• Množenje, deljenje, seštevanje, odštevanje
skalarjev od/z matrikami
A*a, A-a, ...• Množenje matrike z vektorjem
u=A*[0.1,0.2,0.3]
![Page 17: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/17.jpg)
Elementarne matrike in vektorji
• Matrika ničel s 3 vrsticami in 4 stolpci
nicelna = zeros(3,4)• Matrika enic z 2 vrsticama in 3 stolpci
enice = ones(2,3)• Enotina matrika s 3 vrsticami in stolpci
enotina = eye(3)• Matrika naključnih števil med 0 in 1
naklj = rand(2,2),
Kako bi izpisali naklj. matriko med 1 in 3?
![Page 18: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/18.jpg)
Dodatni ukazi• Izpiše seznam vseh spremenljivk v delovnem prostoru
whos
• Zbriše vse spremenljivke iz delovnega prostoraclear all
• Zaustavi izvajanje programaCTRL+C
![Page 19: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/19.jpg)
Povzetek• Z vejico ločimo člene v posamezni vrstici, s podpičjem
preidemo v novo vrstico.
• Pri delu z matrikami, oziroma členi matrik, se prvo število v oklepaju nanaša na vrstico, drugo na stolpec. A(i,j) tako pomeni i to vrstico in j-ti člen v vrstici.
• Če delamo s celim stolpcem ali vrstico, nadomestimo število člena z dvopičjem. A(i,:) pomeni i-to vrstico in je vrstični vektor, A(:,j) pomeni vse člene v j-tem stolpcu in je stolpični vektor.
• Pri dodajanju členov matriki je potrebno paziti na dimenzijo. Tako lahko matriki dodamo le stolpec, ki ima toliko členov kot ima matrika vrstic ali vrstico, ki ima toliko členov kot ima matrika stolpcev.
![Page 20: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/20.jpg)
![Page 21: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/21.jpg)
2D grafi• Odpre grafično okno
figure(1)
• Izriše x,y graf
x = [-2*pi:0.01:2*pi];
y= sin(x);
plot(x, y)
• Naslov grafa
title(‘sin(x)’)
![Page 22: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/22.jpg)
2D grafi• Oznaka na x osi
xlabel(‘ t[s]’)
• Oznaka na y osi
ylabel(‘ t[s]’)
• Omejitev območja izpisa axis([xmin,xmax,ymin,ymax])
axis([-2*pi,2*pi,-1,1])
![Page 23: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/23.jpg)
2D grafi• Risanje mreže na graf
grid
• Branje dveh točk iz grafa s klikom miške
ginput(2)
• Zadrži vsebino grafičnega okna
hold on
Podamo št. točk, kliknemo na graf in Matlab poda rezultate.
Za konec damo hold off.
![Page 24: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/24.jpg)
2D grafi• Določanje barve in tipa izrisa
figure(2)
plot(x,y,’r’, x,y-1,’*y’, x,y+1,’-.g’)
• Dodajanje teksta na graf
text(0, 0.5, ’Tocka x=0,Y=0.5’)
![Page 25: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/25.jpg)
Posebni 2D grafiPolarni graf
theta=[0:0.01:2*pi];
r=sin(theta);
polar(theta,r)
Histogram
x=[1,-2,-2,3,3,3,4,4,4,4];
hist(x)
Ostali: stem, stairs, pie,..
![Page 26: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/26.jpg)
3D grafi• 3D graf
figure(3)
plot3(x, cos(x), sin(x))
![Page 27: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/27.jpg)
Posebni 3D grafi• Posebni 3D graf
surf, mesh, waterfall, ...
Pregled vseh 3D grafov na strani 46 v skripti.
![Page 28: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/28.jpg)
Grafi, splošno• Zbriše vsebino grafičnega okna
clf
• Zapre vsa odprta grafična okna
close all
• Grafe lahko kopiramo v druge (Microsoft) programe z opcijo Edit->Copy Figure. Pred tem označimo v Edit->Copy Options izbrano opcijo (bitmap, metafile).
![Page 29: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/29.jpg)
![Page 30: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/30.jpg)
PROGRAMIRANJE- UPORABNI UKAZI
• Ustavi izvajanje m-datoteke dokler uporabnik ne pritisne poljubne tipke
pause
• Izpiše obvestilo v delovni prostor
disp(‘Obvestilo’)
• Prekine izvajanje for in while stavkov oziroma izvajanje datoteke na mestu ukaza
break
![Page 31: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/31.jpg)
POGOJNI STAVKI – UKAZ IFOblika ukaza
if pogoj1
stavki1;
elseif pogoj2
stavki2;
else
stavki3;
end
![Page 32: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/32.jpg)
POGOJNI STAVKI – UKAZ WHILE
Oblika zanke while
while pogoj
stavki;
end
![Page 33: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/33.jpg)
FOR ZANKAOblika zanke FOR
for stevec = zacetni:korak:koncni,
stavki;
end
![Page 34: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/34.jpg)
MATLAB FUNKCIJE
POMOČ
GLAVA
TELO
![Page 35: Uvod v Matlab - Študentski.net · 2019-03-21 · Uvod v Matlab Uporaben za: • matematika in računanje • razvoj algoritmov (tudi v C-ju) • zajemanje podatkov • modeliranje](https://reader036.fdocument.pub/reader036/viewer/2022063005/5f9c865c2dd76644dc37a41d/html5/thumbnails/35.jpg)
MATLAB FUNKCIJE
• Global• Isglobal• Clear global