Download - Föreläsning 14
![Page 1: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/1.jpg)
1
Föreläsning 14
Matlab fortsättning
Funktioner, styrstrukturer, manipulering av matriser
![Page 2: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/2.jpg)
2
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]
![Page 3: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/3.jpg)
3
Manipulering av matriser
• Följande tre kommandon underlättar manipulering och åtkomst av element i en matris: – (?) – (?:?:?)– (?:? , ?:?)
• Anta matrisen.
M 11 12 13
14 15 16
17 18 19
![Page 4: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/4.jpg)
4
Manipulering av matriser
M(4)
M(1:4:9)
M(2:3,1:2)
M 11 12 13
14 15 16
17 18 19
M 11 12 13
14 15 16
17 18 19
M 11 12 13
14 15 16
17 18 19
![Page 5: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/5.jpg)
5
Manipulering av matriser
M(4)=99
M(1:4:9)=[ 3 6 2]
M(2:3,1:2)=[ 3 6 ;2 4]
M 11 12 13
14 15 16
17 18 19
M 11 99 13
14 15 16
17 18 19
M 3 12 13
14 6 16
17 18 2
M 11 12 13
3 6 16
2 4 19
M 11 12 13
14 15 16
17 18 19
M 11 12 13
14 15 16
17 18 19
![Page 6: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/6.jpg)
6
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.
![Page 7: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/7.jpg)
7
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')enddisp(['I buy one copy.'])
![Page 8: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/8.jpg)
8
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
![Page 9: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/9.jpg)
9
if-elseif-…-elsif-else-sats
if villkorUttryckend
if villkorUttryck1elseUttryck2end
if villkor1Uttryck1elseif villkor2Uttryck2end
Notera elseif och inte elif som i Python.
![Page 10: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/10.jpg)
10
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
![Page 11: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/11.jpg)
11
Loop-syntax
• While-satswhile ett_villkor_uttryck
uttryckend
• For-satsfor variabel = vektor
uttryckend
![Page 12: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/12.jpg)
12
Exempel: For-loop
• for i = [1 2 4 5]
disp(i)
end
![Page 13: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/13.jpg)
13
Exempel: While-loop
• i=1
while i < 10
disp(i)
i = i + 1
end
![Page 14: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/14.jpg)
14
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.
![Page 15: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/15.jpg)
15
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.
![Page 16: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/16.jpg)
16
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
![Page 17: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/17.jpg)
17
Funktion-exempel
• Följande funktion beräknar arean av en kvadrat.
function a = area(x, y)
a = x * y
![Page 18: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/18.jpg)
18
Funktion-exempel
• Följande funktion beräknar arean av en vektor av kvadrater eller en kvadrat!
function a = area(x, y)
a = x .* y
![Page 19: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/19.jpg)
19
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
![Page 20: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/20.jpg)
20
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.
![Page 21: Föreläsning 14](https://reader036.vdocuments.net/reader036/viewer/2022062517/568138e7550346895da098af/html5/thumbnails/21.jpg)
21
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).