MATLAB alapok - a parancs ablak (command window)


A Matlab elinditásakor a parancs ablak (Command Window) jelenik meg az un. Matlab prompt-tal: (>>)

Commands to get started: intro, demo, help help
Commands for more information: help, whatsnew, info, subscribe

>>

Rögtön ismerkedjünk meg legfontosabb paranccsal. Ez a help. Bármely utasitásrol vagy parancsrol informáciot nyerhetünk ha begépeljük:

>>help utasitás_név

Igy még a help parancs hasznlatárol is kaphatunk eligazitást. Az intro, expo, demo parancsok segitségével indithatjuk el a Matlab beépitett oktato illetve demonstrácios célokat szolgálŃo programjait.

A parancs ablakban végrehajthatunk egyszeru matematikai müveleteket:

>>sqrt(4*9)

ans =

     6

Az sqrt(x) x négyzetgyökét számitja. Az ans (ANSwer) a Matlab egy speciális, beépitett változoja.  Értéke mindig a legutolsŃ parancs végrahajtŕsakor keletkezett eredmény, ha a legutolsŃ parancs nem tartalmazott értékadást.
A Matlab egyéb, fontosabb beépŐtett vŕltozŃi:

pi=3.14159265358979
j=i=sqrt(-1)
eps=2.220446049250313e-16ˇ - a numerikus felbontas finomsaga 1.0 kszelében

Az i és j vŕltozŃk definŐciŃjŕbŃl lŕtszik, hogy a Matlab komplex szŕmokat is képes kezelni. Példŕul:

äsqrt(-9)+3

ans =

ˇˇ 3.0000 + 3.0000i

Most lŕssunk egy értékadŃ utasŐtŕst. FIGYELEM!!! A Matlab kŮlsnbséget tesz nagy és kisbetŮk kszstt.

äa=5

a =

ˇˇˇˇ 5

Ha nem szeretnénk, hogy a Matlab minden utasŐtŕs végrehajtŕsa utŕn beszŕmoljon az eredményrol, akkor az utasŐtŕs utŕn tegyŮnk ;-t.
Egy vŕltozŃ értékét egyszeruen lekérdezhetjuk, nevének begépelésével (persze ŮssŮnk entert).
A Matlab belso szŕmŕbrŕzolŕsa igazodik a megfelelo IEEE szabvŕnyhoz. Ez azt jelenti, hogy lehetoség van a mŐnusz és plusz végtelen (-inf, inf) hasznŕlatŕra. Ha egy mŮvelet a Matlab szŕmŕra értelmezhetetlen akor az eredmény NaN (Not a Number). Példŕul
ä6/0

Warning: Divide by zero

ans =

ˇˇˇˇ inf

de

äinf/inf

ans =

ˇˇ NaN

A Matlab szélesksru hasznŕlhatŃsŕgŕnak titka, hogy a mŕtrixokkal ugyan olyan ksnnyen végezhetŮnk mŮveleteket, mint skalŕrokkal. Bŕrmely vŕltozŃ értéke (komplex elemu) mŕtrix is lehet.

äA=[1 2; 3 4]

A =

ˇˇˇˇ 1ˇˇˇˇ 2
ˇˇˇˇ 3ˇˇˇˇ 4

LŕthatŃ, hogy a mŕtrix létrehozŕsakor az oszlop elemit szŃkszzel (lehet ,-vel is), a sorokat pedig ;-vel vŕlasztjuk el egymŕstŃl. Ne feledkezzŮnk meg a [ ] zŕrŃjelekrol. Tehŕt egy sorvektort példŕul a

äb=[1 2];

utasŐtŕssal hozhatunk létre. (A Matlab most nem beszélt vissza, hiszen az utasŐtŕs végére kitettŮnk a ;-t.)
Természetesen hivatkozhatunk egy mŕtrix (vegy vektor) bŕrmelyik elemére, sorŕra vagy oszlopŕra, illetve blokkjŕra. FIGYELEM!!! A sorok és oszlopok indexelése egyarŕnt 1-tol indul! Néhŕny példa:

äA(1,2)ˇˇˇˇˇ % az eslo sor mŕsodik eleme

ans =

ˇˇˇˇ 2

äA(2,:)ˇˇˇˇˇ % a mŕsodik sor

ans =

ˇˇˇˇ 3ˇˇˇˇ 4

äA(:,1)ˇˇˇˇ % az elso oszlop

ans =

ˇˇˇˇ 1
ˇˇˇˇ 3

Nagyobb mŕtrixnŕl mindeztˇtovŕbbˇbonyolŐthatjuk.

b-t és A-t ksnnyedén ssszeszorozhatjuk.

äA*b
??? Error using ==> *
Inner matrix dimensions must agree.

de nem Őgy! A helyes sorrendben:

äb*A

ans =

ˇˇˇˇ 7ˇˇˇ 10

vagy pedig

äA*b'

ans =

ˇˇˇˇ 5
ˇˇˇ 11

ahol ' a transzponŕlt képzésŽnek operŕtora. Adott mŕtrix determinŕnsŕnak, inverzŽnek, sajŕt ŽrtŽkeinek Žs szingulŕris ŽrtŽkeinek szŕmŐtŕsŕra rendre a det, inv, eig, svd utasŐtŕsok szolgŕlnak. PŽldŕul A mŕtrix sajŕtŽrtŽkei az alŕbbiak:

äeig(A)

ans =

ˇˇ -0.3723
ˇˇˇ 5.3723

Egy vektor vagy mŕtrix dimenziŃinak lekŽrdezŽsŽhez a length Žs a size utasŐtŕsokat hasznŕlhatjuk.

älength(b')

ans =

ˇˇˇˇ 2

äsize(A)

ans =

ˇˇˇˇ 2ˇˇˇˇ 2
ˇ
TermŽszetesen egyŽb fŮggvŽnyeknek is lehetnek mŕtrixok az argumentumai.

Egyes mŕtrix- Žs vektortŐpusokra gyakran lehet szŮksŽgŮnk Žs ezek eloŕllitŕsa - foleg nagy sor- Žs oszlopszŕm esetŽn - igen fŕradsŕgos lenne a fenti mŃdszerekkel. EzŽrt erreˇkŮlsn utasŐtŕsok ŕllnak rendelkezŽsre.

LŽnyeges mŽg megemliteni, hogy a Matlabon belŮl kŮlsnleges szerep tulajdonŐthatŃ a sorvektoroknak. Minden sorvektorhoz hozzŕrendelheto ugyanis egy olyan egyvŕltozos polinom, melynek egyŮtthatŃi egy sorvektor elemei. Tehŕt pŽldŕul a p=[2 3 1 4] sorvektorhoz a

2x^3 + 3x^2 + x +4

polinomot rendeljŮk hozzŕ. A fentiekbol lŕtszik, hogy a polinom legmagasabb hatvŕnyu tagjŕnak egyŮtthatŃja a sorvektor elso eleme, mig a konstans tag az utolsŃ eleme. Egy n-ed foku polinom meghatŕrozŕsŕhoz ksvetkezŽskŽpp egy n+1 elemu sorvektor szŮksŽges.
A Matlabban a polyval(p,t) utasitŕs szolgŕl a p sorvektorral adott polinom x=t helyen felvett ŽrtŽkŽnek szamŐtŕsŕhoz.

äpolyval(p,3)

ans =

ˇˇˇ 88

Adott polinom derivŕltja is polinomnak adŃdik. A p sorvektorral adott polinom derivŕltjŕnak megfelelo sorvektort a polyder(p) utasŐtŕssal szŕmŐthatjuk.

äpolyder(p)

ans =

ˇˇˇˇ 6ˇˇˇˇ 6ˇˇˇˇ 1

TermŽsztesen kiszŕmolhatjuk kŽt polinom szorzatŕt is. Erre a conv(p,q) utasŐtŕs szolgŕl. KettonŽl tsbb polinom ssszeszorzŕsakor tsbb conv utasŐtŕst kell egymŕsba ŕgyazni. Ď

EmlŐtsŮnk meg mŽg nŽhany utasŐtŕst, melyekre szŮksŽgŮnk lehet. A Matlab termŽszetesen fejben tartja az ssszes lŽtrehozott vŕltozŃt, de mi erre nem biztos, hogy kŽpesek vagyunk. A who illetve a whos utasŐtŕsok segŐtsŽgŽvel kilistŕztathatjuk az ssszes hasznŕlatban lŽvo vŕltozŃt. (A whos utasŐtŕs rŽszletesebb listŕt ad.) Adott vŕltozŃ tsrlŽsŽre a clear vŕltozŃ_nŽv, az ssszes vŕltozŃ tsrlŽsŽre pedig a clear all utasŐtŕs szolgŕl.

Ha munkankat befejeztŮk, az eredmŽnyt tartalmazo valtozo(kat) elmenthetjŮk kŽsobbi felhasznalas cŽljara. Erre a save utasitas szolgal. PŽldaul a
save result A b
a result.mat allomanyba menti el az A Žs b valtozokat.
A save utasitassal elmentett valtozokat a load utasitassal tolthetjuk be. Itt a valtozok neveit nem kell megadni. A
load result
a result.mat allomanyba tett valtozokat tolti be.
Etmenthetjuk a teljes munkaterulet tartalmat is (osszes letrehozott valtozonkat). Ekkor a save utasitas utan nem irunk valtozonevet, csak az allomany nevŽt. Ha ez utobbit is elhagyjuk, akkor valtozoink automatikusan a matlab.mat allomanyba kerulnek. (Hasonlo eredmŽnyre vezet ha a parancs ablak File menujŽnek Save Workspace As parancsat valasztjuk.)

Vissza