uvod v matlab
DESCRIPTION
Uvod v Matlab. Uvod v Matlab. Matlab - mat rix lab oratory - osnovna enota za delo je polje (array) - enostavno delo z vektorji in matrikami Podpora: Podjetje MathWorks: http://www.mathworks.com. Uvod v Matlab. Uporaben za: matematika in računanje razvoj algoritmov (tudi v C-ju) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/1.jpg)
![Page 2: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/2.jpg)
Uvod v Matlab
![Page 3: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/3.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 4: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/4.jpg)
Uvod v MatlabUporaben 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 5: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/5.jpg)
Razvojno okolje
• Desktop/Desktop Layout/Default• Command Window• Workspace• Current Directory• Command History
![Page 6: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/6.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 7: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/7.jpg)
Uporaba pomoči• Pomoč v obliki html strani
• Pomoč za znan ukaz help sindoc sin
• Iskanje ukazalookfor sin
![Page 8: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/8.jpg)
Skalarji, vektorji, matrike
![Page 9: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/9.jpg)
Zaokroževanje• Zaokrožitev navzdol na celo število
fix(1.9), fix(-1.9)
• Zaokrožitev na najbližje celo številoround(5.6)
• Zaokrožitev na najbližje celo število, proti floor(1.99), floor(-1.1)
• Zaokrožitev na najbližje celo število, proti ceil(1.99), ceil(-1.1)
![Page 10: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/10.jpg)
Formati izpisa• Izpis na 15 decimalk
format long
• Izpis na 5 decimalk, osnovna nastavitevformat
• Ostali:format short e, format long e, format +,
format rat, format compact, ...
![Page 11: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/11.jpg)
Vpis skalarjev• Prireditev vrednosti spremenljivki:
x = 10y = -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 12: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/12.jpg)
Vpis skalarjev• Najmanjše predstavljivo pozitivno število:
realmin
• Največje predstavljivo pozitivno število:realmax
• Točnost operacij s plavajočo vejicoeps
• Vgrajeno število pi
![Page 13: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/13.jpg)
Kompleksna števila• Kompleksna enota je i ali j:
ija = 5+7i;b = 1.123e-2 +1.123j;
• Računamo na enak način kot z realnimi števili• Real (a)• Imag(a)
![Page 14: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/14.jpg)
Osnovne operacije• Seštevanje, odštevanje, množenje, deljenje:
a+ba-ba*ba/b
• Potenciranjea^5.78b^d
![Page 15: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/15.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 16: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/16.jpg)
Osnovne operacije- Absolutna vrednost
abs(a), abs(1+2i)
- Trigonometrične funkcije, argumenti v radianih!sin(pi), cos(a), tan(b)
- Inverzne trigonometrične funkcijeacos(0.5), asin(-1), atan(a)
- Hiperbolične trigonometrične funkcijecosh(1), sinh(a), tanh(b)
![Page 17: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/17.jpg)
Osnovne operacije• Nekaj ‘nenavadnih’ operacij
0/10100/0
• Inf- neskončno
0/0realmax*2
• NaN- not-a-number
![Page 18: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/18.jpg)
Vpis vektorjev• Vpis vrstičnega vektorja
x=[1,2,3,4]
• Vpis stolpičnega vektorjay=[10;20;30;40]
• Avtomatsko generiranje vektorjaw=[0:0.1:1]
• Transponiranje vektorjatransp_x = x’
![Page 19: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/19.jpg)
Delo z vektorji
• Vsota vseh členov vektorjasum(A)
• Dolžina vektorjalength(A)
• Dimenzija vektorja ali matrike size(A)
![Page 20: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/20.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 skalarjemx+a, x*a, x/a
![Page 21: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/21.jpg)
Vpis matrike
9087
654
321
A
• Vpis vrstičnega vektorjavrstica=[1,2,3]
• Vpis stolpičnega vektorjastolpec=[1;2;3]
KAKO BI VPISALI MATRIKO
![Page 22: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/22.jpg)
Vpis matrike• Vpis matrike A
A=[1, 2, 3; 4, 5, 6; 7, 8, 90]
• Dimenzije matrikesize(A)
• Determinanta matrikedet(A)
• Inverzna matrika inv_A=inv(A)
![Page 23: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/23.jpg)
Matematične operacije z matrikami• Množenje, deljenje, seštevanje, odštevanje
matrikinv_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 24: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/24.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 25: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/25.jpg)
Delo s členi, vrsticami in stolpci matrik in vektorjev
• Branje prvega člena vektorja xprvi_clen = x(1)
• Dodajanje člena 1 vrstičnem vektorju x = [x, 1]
Poskusite sami:- Spremeniti drugi člen vektorja x v 1000- Dodati člen 1000 stolpičnemu vektorju y
![Page 26: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/26.jpg)
Delo s členi, vrsticami in stolpci matrik in vektorjev
• Sprememba drugega člena vektorja x v 1000x(2)=1000
• Dodajanje člena 1000 stolpičnemu vektorju yy = [y; 1000]
Poskusite sami:- Prebrati prvi člen v tretji vrstici matrike A
![Page 27: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/27.jpg)
Delo s členi, vrsticami in stolpci matrik in vektorjev
• Branje prvega člena tretje vrstice AA13 = A(1,3)
• Branje drugega stolpca matrike stolpec = A(:,2)
• Branje tretje vrstice matrike vrstica = A(3,:)
![Page 28: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/28.jpg)
Delo s členi, vrsticami in stolpci matrik in vektorjev
• Dodajanje vrstice matrikiA_nov=[A;[100,200,300]]
• Dodajanje stolpca matrikiA_nov=[A,[0.1;0.2;0.3]]
• Brisanje tretje vrstice iz matrikeA(3,:)=[]
![Page 29: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/29.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 30: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/30.jpg)
Povzetek• Z vejico ločimo člene v eni 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 številko č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 31: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/31.jpg)
Vizualizacija
![Page 32: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/32.jpg)
2D grafi• Odpre grafično okno
figure(1)
• Izriše x,y grafx = [-2*pi:0.01:2*pi];y= sin(x);plot(x, y)
• Naslov grafatitle(‘sin(x)’)
![Page 33: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/33.jpg)
2D grafi• Oznaka na x osi
xlabel(‘ t[s]’)
• Oznaka na y osiylabel(‘ t[s]’)
• Omejitev območja izpisa axis([xmin,xmax,ymin,ymax])
axis([-2*pi,2*pi,-1,1])
![Page 34: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/34.jpg)
2D grafi• Risanje mreže na graf
grid
• Branje dveh točk z grafa s klikom miškeginput(2)
• Zadrži vsebino grafičnega oknahold on
Podamo št. Točk, kliknemo na graf in Matlab poda rezultate.
Za konec damo hold off.
![Page 35: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/35.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 graftext(0, 0.5, ’Tocka x=0,Y=0.5’)
![Page 36: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/36.jpg)
Posebni 2D grafiPolarni graftheta=[0:0.01:2*pi];r=sin(theta);polar(theta,r)
Histogramx=[1,-2,-2,3,3,3,4,4,4,4];hist(x)
Ostali: stem, stairs, pie,..
![Page 37: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/37.jpg)
3D grafi• 3D graf
figure(3)plot3(x, cos(x), sin(x))
![Page 38: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/38.jpg)
Posebni 3D grafi• Posebni 3D graf
surf, mesh, waterfall, ...
Pregled vseh 3D grafov na strani 46 v skripti.
![Page 39: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/39.jpg)
Grafi, splošno• Zbriše vsebino grafičnega okna
clf
• Zapre vsa odprta grafična oknaclose 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 40: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/40.jpg)
Programske strukture
![Page 41: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/41.jpg)
PROGRAMIRANJE- UPORABNI UKAZI
• Ustavi izvajanje m-datoteke dokler uporabnik ne pritisne poljubne tipke
pause
• Izpiše obvestilo v delovni prostordisp(‘Obvestilo’)
• Prekine izvajanje for in while stavkov oziroma izvajanje datoteke na mestu ukaza
break
![Page 42: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/42.jpg)
POGOJNI STAVKI – UKAZ IFOblika ukaza if pogoj1 stavki1; elseif pogoj2 stavki2; else stavki3; end
![Page 43: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/43.jpg)
POGOJNI STAVKI – UKAZ WHILEOblika zanke while
while pogoj stavki; end
![Page 44: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/44.jpg)
FOR ZANKAOblika zanke FOR
for stevec = zacetni:korak:koncni, stavki;end
![Page 45: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/45.jpg)
MATLAB FUNKCIJEDefinicija funkcije:
% Opis funkcije% Avtor, datum
function [izhod] = ime_funkcije(vhod)
izhod = vhod*2;
• NARGIN• NARGOUT
POMOČ
GLAVA
TELO
![Page 46: Uvod v Matlab](https://reader031.vdocuments.site/reader031/viewer/2022013105/56813e78550346895da8990e/html5/thumbnails/46.jpg)
MATLAB FUNKCIJE• Global• Isglobal• Clear global