Top Banner
46

Uvod v Matlab

Jan 07, 2016

Download

Documents

bess

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 Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Uvod v Matlab
Page 2: Uvod v Matlab

Uvod v Matlab

Page 3: Uvod v Matlab

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

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

Razvojno okolje

• Desktop/Desktop Layout/Default• Command Window• Workspace• Current Directory• Command History

Page 6: Uvod v Matlab

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

Uporaba pomoči• Pomoč v obliki html strani

• Pomoč za znan ukaz help sindoc sin

• Iskanje ukazalookfor sin

Page 8: Uvod v Matlab

Skalarji, vektorji, matrike

Page 9: Uvod v Matlab

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

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

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

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

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

Osnovne operacije• Seštevanje, odštevanje, množenje, deljenje:

a+ba-ba*ba/b

• Potenciranjea^5.78b^d

Page 15: Uvod v Matlab

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

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

Osnovne operacije• Nekaj ‘nenavadnih’ operacij

0/10100/0

• Inf- neskončno

0/0realmax*2

• NaN- not-a-number

Page 18: Uvod v Matlab

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

Delo z vektorji

• Vsota vseh členov vektorjasum(A)

• Dolžina vektorjalength(A)

• Dimenzija vektorja ali matrike size(A)

Page 20: Uvod v Matlab

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

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

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

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

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

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

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

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

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

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

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

Vizualizacija

Page 32: Uvod v Matlab

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

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

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

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

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

3D grafi• 3D graf

figure(3)plot3(x, cos(x), sin(x))

Page 38: Uvod v Matlab

Posebni 3D grafi• Posebni 3D graf

surf, mesh, waterfall, ...

Pregled vseh 3D grafov na strani 46 v skripti.

Page 39: Uvod v Matlab

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

Programske strukture

Page 41: Uvod v Matlab

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

POGOJNI STAVKI – UKAZ IFOblika ukaza if pogoj1 stavki1; elseif pogoj2 stavki2; else stavki3; end

Page 43: Uvod v Matlab

POGOJNI STAVKI – UKAZ WHILEOblika zanke while

while pogoj stavki; end

Page 44: Uvod v Matlab

FOR ZANKAOblika zanke FOR

for stevec = zacetni:korak:koncni, stavki;end

Page 45: Uvod v Matlab

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

MATLAB FUNKCIJE• Global• Isglobal• Clear global