Øvingsforelesning i Matlab TDT4105
Transcription
Ø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 • [email protected] 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