Upload
garrett-dickerson
View
27
Download
1
Embed Size (px)
DESCRIPTION
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]. - PowerPoint PPT Presentation
Citation preview
1
Föreläsning 14
Matlab fortsättning
Funktioner, styrstrukturer, manipulering av matriser
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]
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
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
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
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.
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.'])
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
9
if-elseif-…-elsif-else-sats
if villkorUttryckend
if villkorUttryck1elseUttryck2end
if villkor1Uttryck1elseif villkor2Uttryck2end
Notera elseif och inte elif som i Python.
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
11
Loop-syntax
• While-satswhile ett_villkor_uttryck
uttryckend
• For-satsfor variabel = vektor
uttryckend
12
Exempel: For-loop
• for i = [1 2 4 5]
disp(i)
end
13
Exempel: While-loop
• i=1
while i < 10
disp(i)
i = i + 1
end
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.
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.
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
17
Funktion-exempel
• Följande funktion beräknar arean av en kvadrat.
function a = area(x, y)
a = x * y
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
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
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.
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).