210 likes | 317 Views
Föreläsning 14. Matlab fortsättning Funktioner, styrstrukturer, manipulering av matriser. 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].
E N D
Föreläsning 14 Matlab fortsättning Funktioner, styrstrukturer, manipulering av matriser
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]
Manipulering av matriser • Följande tre kommandon underlättar manipulering och åtkomst av element i en matris: • (?) • (?:?:?) • (?:? , ?:?) • Anta matrisen.
Manipulering av matriser M(4) M(1:4:9) M(2:3,1:2)
Manipulering av matriser M(4)=99 M(1:4:9)=[ 3 6 2] M(2:3,1:2)=[ 3 6 ;2 4]
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 ifvillkor Uttryck end ifvillkor 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 uttryck end • For-sats for variabel = vektor uttryck end
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
Funktion-exempel • Följande funktion beräknar arean av en vektor av kvadrater eller en kvadrat! function a = area(x, y) a = x .* y
Lös ekvationssystem • Definiera matris: A = [ 2 1 -1 ; -3 -1 2 ; -2 1 2 ] • Definiera kolumnvektor: b = [ 8 -11 -3 ] • Be Matlab att hitta lösning(ar): x = A\b
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).