Øvingsforelesning i Matlab TDT4105

Øvingsforelesning i Matlab TDT4105
Øving 3. Pensum: switch, for-løkker, fprintf
Benjamin A. Bjørnseth
21. september 2015
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
2
Oversikt
Litt praktisk
Eksempeloppgaver
Gjennomgang av øving 2
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
3
Kollokviegrupper
— Tiltenkt de som virkelig sliter med faget og som mangler forståelse for
grunnleggende prinsipper.
— Studass må godkjenne og melde deg på innen 25.09 (fredag denne
uka).
— For mer informasjon:
• Snakk med studass.
• https://www.ntnu.no/wiki/display/itgk/Kollokvier
• itgk-undass@idi.ntnu.no
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
4
Auditorieøving
— Neste uke. Tid og sted kommer på itgk.idi.ntnu.no.
— Løs oppgaver liknende øving på penn og papir i timen.
• Jobb alene første timen, etter det kan studass hjelpe til.
— Må ha minst én av to godkjente.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
5
Oversikt
Litt praktisk
Eksempeloppgaver
Gjennomgang av øving 2
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
6
For-løkke-oppvarming
Lag en funksjon vektorlengde(vektor)
som regner ut euklidsk lengde
q
av vektoren. Formel: |v | =
v12 + v22 + ... + vn2
— Innebygd variant: norm(vektor)
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
7
Eksempel: Newtons metode
1. Skriv funksjonen kvadratrot(tall)
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
7
Eksempel: Newtons metode
1. Skriv funksjonen kvadratrot(tall)
• Bruk 20 iterasjoner av Newtons metode til å estimere verdien
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
7
Eksempel: Newtons metode
1. Skriv funksjonen kvadratrot(tall)
• Bruk 20 iterasjoner av Newtons metode til å estimere verdien
— rot 2 = tall ⇒ rot 2 − tall = 0
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
7
Eksempel: Newtons metode
1. Skriv funksjonen kvadratrot(tall)
• Bruk 20 iterasjoner av Newtons metode til å estimere verdien
— rot 2 = tall ⇒ rot 2 − tall = 0
— Newtons metode estimerer nullpunkt til funksjon xi = xi−1 −
www.ntnu.no
f (xi−1 )
f 0 (xi−1 )
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
7
Eksempel: Newtons metode
1. Skriv funksjonen kvadratrot(tall)
• Bruk 20 iterasjoner av Newtons metode til å estimere verdien
— rot 2 = tall ⇒ rot 2 − tall = 0
— Newtons metode estimerer nullpunkt til funksjon xi = xi−1 −
f (xi−1 )
f 0 (xi−1 )
• Skriv i hver iterasjon ut informasjon om utregningen på format
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
7
Eksempel: Newtons metode
1. Skriv funksjonen kvadratrot(tall)
• Bruk 20 iterasjoner av Newtons metode til å estimere verdien
— rot 2 = tall ⇒ rot 2 − tall = 0
— Newtons metode estimerer nullpunkt til funksjon xi = xi−1 −
f (xi−1 )
f 0 (xi−1 )
• Skriv i hver iterasjon ut informasjon om utregningen på format
— Iterasjon #<i>: x_<i-1> = <verdi>, x_<i> = <verdi>
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
8
Eksempel: eksamensoppgave
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
9
Eksempel: romertall
1. Lag en funksjon som tar inn et romertall, og returnerer tallverdien.
• fra_romertall(’MCMXCIX’) -> 1999
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
10
Eksempel: flyplasskøer
— Tenkt situasjon: flyplasskø (sikkerhetskontroll)
• Folk går i rader
• Hver person i køen har et visst antall minutter til flyet går
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
11
Eksempel: flyplasskøer
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
12
Eksempel: flyplasskøer
www.ntnu.no
93
88
200
93
37
75
22
112
75
52
121
68
134
95
66
32
133
118
39
111
27
141
93
69
35
86
93
83
30
141
91
91
120
25
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
13
Eksempel: flyplasskøer
— Oppgave: lag et program som henter de personene med dårligst tid
ut av køen, slik at kørekken får en kolonne mindre.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
14
Eksempel: flyplasskøer
www.ntnu.no
93
88
200
93
37
75
22
112
75
52
121
68
134
95
66
32
133
118
39
111
27
141
93
69
35
86
93
83
30
141
91
91
120
25
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
15
Eksempel: flyplasskøer
www.ntnu.no
93
88
200
93
37
75
22
112
75
52
121
68
134
95
66
32
133
118
39
111
27
141
93
69
35
86
93
83
30
141
91
91
120
25
95
93
88
200
93
37
75
22
112
75
52
121
68
134
95
66
32
133
118
39
111
27
141
93
69
35
86
93
83
30
141
91
91
120
25
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
16
Eksempel: flyplasskøer
www.ntnu.no
93
88
200
93
37
75
22
112
75
52
121
68
134
95
66
32
133
118
39
111
27
141
93
69
35
86
93
83
30
141
91
91
120
25
95
93
88
200
93
37
93
134
118
95
75
22
112
75
52
75
112
93
141
121
68
134
95
66
121
200
83
111
32
133
118
39
111
86
88
120
66
27
141
93
69
35
91
68
30
52
86
93
83
30
141
91
133
69
93
91
91
120
25
95
93
141
95
75
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
17
Først et par Matlabtips
— Hente ut antall rader og kolonner for matrise:
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
17
Først et par Matlabtips
— Hente ut antall rader og kolonner for matrise:
• [m, n] = size(matrise)
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
17
Først et par Matlabtips
— Hente ut antall rader og kolonner for matrise:
• [m, n] = size(matrise)
— Finne posisjonene til en liste sortert etter stigende verdi:
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
17
Først et par Matlabtips
— Hente ut antall rader og kolonner for matrise:
• [m, n] = size(matrise)
— Finne posisjonene til en liste sortert etter stigende verdi:
• [~, ordning] = sort(liste)
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
17
Først et par Matlabtips
— Hente ut antall rader og kolonner for matrise:
• [m, n] = size(matrise)
— Finne posisjonene til en liste sortert etter stigende verdi:
• [~, ordning] = sort(liste)
— Lag en m × n matrise fra en vektor:
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
17
Først et par Matlabtips
— Hente ut antall rader og kolonner for matrise:
• [m, n] = size(matrise)
— Finne posisjonene til en liste sortert etter stigende verdi:
• [~, ordning] = sort(liste)
— Lag en m × n matrise fra en vektor:
• reshape(vektor, m, n)
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
18
Køen som matrise
www.ntnu.no
93
88
200
93
37
93
91
200
25
37
75
22
112
75
52
75
93
112
30
52
121
68
134
95
66
121
141
134
69
66
32
133
118
39
111
32
133
118
39
111
27
141
93
69
35
27
68
93
95
35
86
93
83
30
141
86
22
83
75
141
91
91
120
25
95
91
88
120
93
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
19
Køen som matrise
www.ntnu.no
93
88
200
93
37
93
91
200
25
37
75
22
112
75
52
75
93
112
30
52
121
68
134
95
66
121
141
134
69
66
32
133
118
39
111
32
133
118
39
111
27
141
93
69
35
27
68
93
95
35
86
93
83
30
141
86
22
83
75
141
91
91
120
25
95
91
88
120
93
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
20
Løsningsplan:
1. Brett ut køen ved å gjøre kø-matrisen til en kø-vektor.
2. Finn de n personene i køen med dårligst tid.
3. Lag en matrise med alle de andre personene.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
21
Eksempel: flyplasskøer
93
75
121
32
27
86
91
www.ntnu.no
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
22
Eksempel: flyplasskøer
93
75
121
32
27
86
91
www.ntnu.no
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
23
Eksempel: flyplasskøer
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
...
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
24
Eksempel: flyplasskøer
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
...
37
52
66
111
35
141
95
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
25
Eksempel: flyplasskøer
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
...
37
52
66
111
35
141
95
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
26
Eksempel: flyplasskøer
Matrise som vektor: M(:)
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
...
37
52
66
111
35
141
95
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
27
Eksempel: flyplasskøer
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
...
37
52
66
111
35
141
95
www.ntnu.no
#end-6
#end-5
#end-4
#end-3
#end-2
#end-1
#end
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
28
Eksempel: flyplasskøer
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
...
37
52
66
111
35
141
95
www.ntnu.no
#end-6
#end-5
#end-4
#end-3
#end-2
#end-1
#end
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
29
Eksempel: flyplasskøer
Finn rekkefølgen på liste: [~, ordning] = sort(liste)
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
...
37
52
66
111
35
141
95
www.ntnu.no
#end-6
#end-5
#end-4
#end-3
#end-2
#end-1
#end
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
30
Eksempel: flyplasskøer
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
...
37
52
66
111
35
141
95
www.ntnu.no
#end-6
#end-5
#end-4
#end-3
#end-2
#end-1
#end
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
31
Eksempel: flyplasskøer
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
...
37
52
66
111
35
141
95
www.ntnu.no
#end-6
#end-5
#end-4
#end-3
#end-2
#end-1
#end
93
75
121
86
91
91
93
141
133
68
88
...
52
66
111
141
95
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#end-4
#end-3
#end-2
#end-1
#end
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
32
Eksempel: flyplasskøer
Hent ut element fra posisjoner i liste: liste(posisjoner)
(Hentes ut i rekkefølgen gitt i posisjoner)
93
75
121
32
27
86
91
91
93
141
133
68
22
88
200
112
134
118
93
83
120
25
30
69
39
95
75
93
37
52
66
111
35
141
95
93
75
121
32
27
86
91
91
93
141
133
68
22
88
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
...
37
52
66
111
35
141
95
www.ntnu.no
#end-6
#end-5
#end-4
#end-3
#end-2
#end-1
#end
93
75
121
86
91
91
93
141
133
68
88
...
52
66
111
141
95
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#end-4
#end-3
#end-2
#end-1
#end
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
33
Eksempel: flyplasskøer
93
75
121
86
91
91
93
141
133
68
88
200
112
134
...
52
66
52
66
111
141
95
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
34
Eksempel: flyplasskøer
93
75
121
86
91
91
93
141
133
68
88
200
112
134
...
52
66
52
66
111
141
95
www.ntnu.no
93
75
121
86
91
91
93
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
35
Eksempel: flyplasskøer
93
75
121
86
91
91
93
141
133
68
88
200
112
134
...
52
66
52
66
111
141
95
www.ntnu.no
93
75
121
86
91
91
93
141
133
68
88
200
112
134
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
36
Eksempel: flyplasskøer
93
75
121
86
91
91
93
141
133
68
88
200
112
134
...
52
66
52
66
111
141
95
www.ntnu.no
93
75
121
86
91
91
93
141
133
68
88
200
112
134
118
93
83
120
30
69
95
75
93
52
66
111
141
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
37
Eksempel: flyplasskøer
93
75
121
86
91
91
93
141
133
68
88
...
52
66
111
141
95
www.ntnu.no
93
75
121
86
91
91
93
141
133
68
88
200
112
134
118
93
83
120
30
69
95
75
93
52
66
111
141
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
38
Eksempel: flyplasskøer
Lag m × n matrise fra vektor: reshape(vektor, m, n)
93
75
121
86
91
91
93
141
133
68
88
...
52
66
111
141
95
www.ntnu.no
93
75
121
86
91
91
93
141
133
68
88
200
112
134
118
93
83
120
30
69
95
75
93
52
66
111
141
95
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
39
Oversikt
Litt praktisk
Eksempeloppgaver
Gjennomgang av øving 2
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
40
Den ultimate karakterfordeling
— function karakter = num2grade(points)
— function karakter = evaluateGrade(points, handWriting)
— function points = randomPoints()
— function fin_skrift = randomHandW()
— function grades()
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105
41
Sannhetsmatrise
— function resultat = isBetween(data, lower, upper)
— Bruk av sannhetsmatrisen.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab TDT4105