21
1 Föreläsning 14 Matlab fortsättning Funktioner, styrstrukturer, manipulering av matriser

Föreläsning 14

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

Page 1: Föreläsning 14

1

Föreläsning 14

Matlab fortsättning

Funktioner, styrstrukturer, manipulering av matriser

Page 2: Föreläsning 14

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

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

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

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

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

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

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

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

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

11

Loop-syntax

• While-satswhile ett_villkor_uttryck

uttryckend

• For-satsfor variabel = vektor

uttryckend

Page 12: Föreläsning 14

12

Exempel: For-loop

• for i = [1 2 4 5]

disp(i)

end

Page 13: Föreläsning 14

13

Exempel: While-loop

• i=1

while i < 10

disp(i)

i = i + 1

end

Page 14: Föreläsning 14

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

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

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

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

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

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

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

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).