A MATLAB alapjai Kezdő lépések - Matlab Promt: >> - Help: >> help sqrt >> doc sqrt - Kilépés: >> quit >> exit >> Futó script leállítása: >> ctrl+c - Változók listásása >> who >> whos - Változók törlése >> clear... >> clear all - Változók mentése, betöltése >> save result >> load result Részei Változók Aktuális mappa Parancs ablak Előzmények 1
MATLAB, mint számológép MATLAB parancs 1 49 sqrt(49) 2 7 2 7^2 megjegyzés Ans (answer): utolsó eredmény hatvány 3 π pi Beépített konstansok 4 i j, i, 1 Komplex számok kezelése 5 3 2 + 1 2 i sqrt(3)/2+1/2i 6 x = 5 x = 5; Értékadás, eredménykiíratás nélkül 7 6 0 6/0 Inf: végtelen 8 inf/inf NaN: Not a number Vektorok és mátrixok Fontos: Az indexelés 1-től indul. Objektum Létrehozása Matematikai jelölés 1 Sorvektor s = [1 2] vagy s = [1, 2] s = (1 2) 2 Oszlopvektor 3 Vektor i. eleme 4 Mátrix o = [1; 2] o = ( 1 2 ) s(1) s 1 A = [1 2; 3 4] ( 1 2 3 4 ) 5 Mátrix (i,j) eleme A(i,j) A ij 6 Mátrix oszlopa A(1,:) = [1;3] ( a 11 a 21 ) = ( 1 3 ) 2
7 Mátrix sora A(:,1) = [1 2] (a 11 a 12) = (1 2) Speciális mátrixok 1 Egységmátrix 1 0 0 eye(3) ( 0 1 0) 0 0 1 2 Diagonális mátrix diag(s) vagy diag([1,2]) ( 1 0 0 2 ) Műveletek vektorokkal, mátrixokkal 1 Transzponálás (konjugálás) o = s vagy o = [1 2] ( 1 ) = (1 2)T 2 2 Invertálás A^(-1) vagy inv(a) ( 1 2 3 4 ) 1 3 Vektor hossza 4 Mátrix dimenziója length(s) size(a) Pl.: 2 Pl.: 2x2 5 Elemenkénti művelet végrehajtás A.^2 ( 12 2 2 3 2 4 2) 6 Szorzás (Dimenzióknak egyezniük kell!) A*s vagy [1 2; 3 4]*[5 6] ( 1 2 ) (1 2) 3 4 7 Skalár szorzat 8 Összeadás, kivonás [1 2]*[3;4] A + B, [1 0; 0 1]+[0 1; 1 0] a + b, [1 2] + [2 3] DE NEM! [1 2] + [2; 3] (1 2) ( 3 4 ) ( 1 0 0 1 ) + (0 1 1 0 ) (1 2) + (2 3) 3
M állomány (.m kiterjesztésű fájlok) m-fájl: MATLAB utasításokat tartalmazó szöveg fájl M-fájl készítése és futtatása Nyissunk meg egy MATLAB szövegszerkesztőt: File/New/Script vagy M-file (vagy más szövegszerkesztőt és a fájlt.m kiterjesztéssel mentsük el). Töltsük fel a következő tartalommal: A = [1 2; 3 4; 5 6] B = [7 8 9; 10 11 12] sz = A*B Mentsük el (pl. szorzat.m) majd futassuk le a Debug/Run menüponttal! Futassuk le MATLAB promptból az elmentett fájl nevével (pl. szorzat)! Mi történik, ha pontosvesszőket teszünk a sorok végére? Függvények Egyváltozós Készítsünk el egy f.m nevű állományt az aktuális könyvtárban a következő tartalommal: function y = f(x) y = x^3+x^2-2; Számoljuk ki y függvény értékét x=2 helyen! (f(2)) Többváltozós Írjunk függvényt az A és B mátrix kommutátorának kiszámítására! function X = komm(a,b) X = A*B-B*A; Próbáljuk ki konkrét mátrixokal! Beépített függvények Trigonometriai: sin(x), cos(x), atan(x),... Véletlenszám generálás: Generáljunk 10 db egész véletlenszámot 0 és 10 között! floor(rand(1,10)*10) Debugolás kulcsszavak pause: a program végrehajtása megáll, gombnyomásra folytatódik input: a felhasználótól adatot kérhetünk futás közben Kommentelés %komment %% blokkok létrehozása 4
MATLAB programozási nyelve For ciklus Készítsünk el az első 10 pozitív természetes szám négyzetéből álló vektort! for i=1:10 x(i)=i^2; for i=1:10 x(i)=i^2; for i=10:-1:1 x(i)=i^2; While ciklus Határozzuk meg azt a legkisebb n egész számot, amelyre 2-nek az n-edik hatványa legalább a. n=0; while 2^n<a n=n+1; Megjegyzés: n+=1; nem jó! Feltételek Adjuk össze azokat a= [1, 45, 32, 6, 78, 32, 4, 65, 12, 19] vektorban azokat az elemeket, amelyek oszthatók 3-mal! x=0; a= [1, 45, 32, 6, 78, 32, 4, 65, 12, 19]; for i=1:length(a) if (mod(a(i),3))==0) x=x+a(i) Szükséges relációs jelek < (kisebb, mint) > (nagyobb, mint) <= (kisebb vagy egyenlő) >= (nagyobb vagy egyenlő) == (egyenlő) ~= (nem egyenlő) Az == jel csak a relációkban használatos, értékadásra az = jel való. A relációkat a 5
& (= AND = ÉS) (= OR = VAGY) ~ (= NOT = NEM) jelekkel kapcsolhatjuk össze. 1 0.8 Grafika Függvény ábrázolása Rajzoljuk fel a sinus függvényt a [-4,4] intervallumon! x=-4:0.1:4; y=sin(x); plot(x,y) 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 -4-3 -2-1 0 1 2 3 4 Próbáljuk ki a következő beállításokkal is! Mit tapasztalunk? plot(x,y, r ) plot(x,y, g ) plot(x,y, * ) plot(x,y, o ) plot(x,y,. ) Egyszerre több függvény ábrázolása a hold on utasítás segítségével lehetséges. Beállítások Kezdő és végpontok: axis([xmin xmax ymin ymax]) Cím adása (lehet Latex kódot is használni): title( A sin es a cos fuggveny ) Jelölések magyarázatának hozzáadása: leg( sin, cos ) Hasonló ingyen elérhető programok: - Scilab - Freemat - Octave Forrás Hujter Mihály: Betekintés a MATLAB programrszerbe 6