Funktioner, styrstrukturer, manipulering av matriser Föreläsning 14 Matlab fortsättning Funktioner, styrstrukturer, manipulering av matriser KTH, CSC, Vahid Mosavat
Kolon operatorn Man kan lätt skapa en vektor med hjälp av : (kolon operatorn) enligt nedan: startvärde : intervall : maxvärde T.ex: 1:2:10 ger [1 3 5 7 9] 4:-3:-8 ger [4 1 -2 -5 -8] KTH, CSC, Vahid Mosavat
Manipulering av matriser Följande tre kommandon underlättar manipulering och åtkomst av element i en matris: (?) (?:?:?) (?:? , ?:?) Anta matrisen. KTH, CSC, Vahid Mosavat
Manipulering av matriser KTH, CSC, Vahid Mosavat
Manipulering av matriser KTH, CSC, Vahid Mosavat
Kommentarer i Matlab I de flesta programspråk kan man skriva kommentarer i koden. Kommentarer gör programmet mer lättläst. I Matlab är allt mellan % och radslut en kommentar.
if-sats En if-sats används för att välja exekveringsväg. Notera avslutande end och frånvaron av kolon, jmf med Python. price = input('How much? '); if price >= 135 disp('very expensive but') end disp(['I buy one copy.'])
if-else-sats En if-sats används för att välja exekveringsväg. Notera avslutande end, och frånvaron av kolon, jmf med Python. age = input(’How old are you? ') ; if age >= 20 disp('welcome to systembolaget') else a = 20-age ; disp(['sorry, you must wait ' num2str(a) ' years']) end
if-elseif-…-elsif-else-sats if villkor Uttryck end if villkor Uttryck1 else Uttryck2 end if villkor1 Uttryck1 elseif villkor2 Uttryck2 end Notera elseif och inte elif som i Python.
Loopar För att upprepa ett en del av ett program använder man en loopar (slinga). Det finns två sorters loopar i Matlab: for while
Loop-syntax While-sats while ett_villkor_uttryck For-sats uttryck end for variabel = vektor
Exempel: For-loop for i = [1 2 4 5] disp(i) end
Exempel: While-loop i=1 while i < 10 disp(i) i = i + 1 end
Funktioner I Matlab kan man definiera egna funktioner. Genom att undvika kodupprepning spar man tid. En funktion kan skriva i samma fil som huvudprogrammet eller i en separat fil. En funktion kan ta indata och returnera ett värde.
Funktion-Syntax Namnet på m-filen man skriver funktionen i måste exakt vara samma namn som funktionen. Syntaxen ser så här ut: function utdata = funktionensnamn(indata1, indata2, …), här kommer själva beräkningen. utdata måste initieras i funktionen om det är tänkt att funktionen ska returnera något värde.
Funktion-exempel Följande funktion skrivs i en fil som heter CToF.m % funktionen cToF omvandlar celsius % till fahrenheit function F = cToF(celsius) F = 32+1.8*celsius
Funktion-exempel Följande funktion beräknar arean av en kvadrat. function a = area(x, y) a = x * y KTH, CSC, Vahid Mosavat
Funktion-exempel Följande funktion beräknar arean av en vektor av kvadrater eller en kvadrat! function a = area(x, y) a = x .* y KTH, CSC, Vahid Mosavat
Lös ekvationssystem Definiera matris: A = [ 2 1 -1 ; -3 -1 2 ; -3 -1 2 ; -2 1 2 ] Definiera kolumnvektor: b = [ 8 -11 -3 ] Be Matlab att hitta lösning(ar): x = A\b KTH, CSC, Vahid Mosavat
Matlab jämfört med Python Indexering av list/vektor från 1. Inga kolon för att påbörja block. Avsluta if, for, etc med end. Strängar skrivs med enkelfnutt: ’ inte med citationstecken.
Matlab jämfört med Python Kolonoperator motsvarar range(), men hör övre gräns inklusive. Använd semikolon ; för att undvika att Matlab skriver ut deluttryck (behövs inte i Python).