Föreläsning 14

Preview:

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