Øvingsforelesning TDT4105 Matlab

Like dokumenter
Øvingsforelesning TDT4105 Matlab

Øvingsforelesning i Matlab (TDT4105)

Øvingsforelesning i Matlab (TDT4105)

Øvingsforelesning i Matlab (TDT4105)

Øvingsforelesning i Matlab TDT4105

Øvingsforelesning TDT4105 Matlab

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

Øvingsforelesning i Matlab TDT4105

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

ITGK - H2010, Matlab. Repetisjon

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Læringsmål og pensum. Oversikt

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Øvingsforelesning 1 Python (TDT4110)

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

TDT4105 IT Grunnkurs Høst 2016

Tall, vektorer og matriser

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

Læringsmål og pensum. if (be): else (not_to_be):

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

Øving 2 Matrisealgebra

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

Øvingsforelesning i Python (TDT4110)

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Forelesningsinfo. Tider Mandag Tirsdag Onsdag Torsdag Fredag

18. (og 19.) september 2012

11. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 5 (del 2) Ada Gjermundsen

Kapittel 1 En oversikt over C-språket

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler

Øvingsforelesning 5 Python (TDT4110)

Høst Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

Noen innebygde funksjoner - Vektorisering

TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6)

Noen innebygde funksjoner - Vektorisering

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Notat 2, ST januar 2005

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Øvingsforelesning 5 Python (TDT4110)

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Matriser. Kapittel 4. Definisjoner og notasjon

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

TDT Øvingsforelesning 1. Tuesday, August 28, 12

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 4. Iver Dihle Skjervum Vit.ass. ITGK

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

4 Matriser TMA4110 høsten 2018

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Norsk informatikkolympiade runde

Utførelse av programmer, metoder og synlighet av variabler i JSP

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Kapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14.

HØGSKOLEN I SØR-TRØNDELAG

Del 1 En oversikt over C-programmering

Øvingsforelesning i Matlab TDT4105

Norsk informatikkolympiade runde

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Betinget eksekvering og logiske tester i shell

INF225 høsten 2003 Prosjekt del 4: kodegenerering

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Øvingsforelesning TDT4105

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Repetisjon, del 1. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Løsningsforslag B = 1 3 A + B, AB, BA, AB BA, B 2, B 3 C + D, CD, DC, AC, CB. det(a), det(b)

Løpende strekmann Erfaren Videregående Python PDF

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2015

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen

TDT4110 Informasjonsteknologi grunnkurs: Python: Repetisjon. Professor Alf Inge Wang

Oppsummering fra sist

Programmering i R. 6. mars 2004

Oppgaver uke 1: Løsningsforslag

TDT4110 IT Grunnkurs Høst 2016

TDT4105 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Eksamensoppgaver 2014

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Kanter, kanter, mange mangekanter

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler. - 3rd edition: Kapittel Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

Kapittel september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 7.

Læringsmål og pensum. Intro til returverdifunksjoner: Generering av tilfeldige tall 27/09/16

TDT4105 IT Grunnkurs Høst 2014

Hydrostatikk/Stabilitet enkle fall

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Transkript:

Øvingsforelesning TDT4105 Matlab Øving 2. Pensum: Funksjoner, matriser, sannhetsuttrykk, if-setninger. Benjamin A. Bjørnseth 8. september 2015

2 Innhold Funksjoner Matriser Matriseoperasjoner Sannhetsuttrykk If-setninger

3 Oversikt Funksjoner Matriser Matriseoperasjoner Sannhetsuttrykk If-setninger

4 Motiverende eksempel Eksempeloppgave: Lag et program som leser inn radius og høyde for en sylinder fra en bruker, og som skriver ut sylinderens areal og volum til skjerm. A_sylinder = 2* + h V_sylinder = * h r * Trenger én beregning flere steder i programmet: perfekt med

5 Funksjoner: mer kompliserte operatorer x = 1 + 2; y = 2 * 2-3 ^ x; Funksjon = operator Parameter/argument = operand.

6 Eksempel vektor = [1, 2, 3]; summen = sum(vektor); Ser ut som oppslag i en vektor. Operasjon: sum. Data: vektor. Regner ut høyresiden, binder svaret til variabelen.

7 Utregning av variabeltilordning med funksjonskall Demonstrer på tavla.

8 Terminologi lengden = length(vektor) Bruke funksjonen == kalle funksjonen Her kaller vi funksjonen length, med vektor som argument. Forskjell på parameter og argument: funksjonsdefinisjon og funksjonskall. Klart etter hvert.

9 Ingen output er ok Ulikt operatorer: regner ikke alltid ut et svar. Eksempel: disp(). disp(summen); disp(lengden);

10 Eksempel på innputt tall = input( Skriv inn et tall: ); Kommunikasjon Matlab -> Bruker: disp() Kommunikasjon Bruker -> Matlab: input() Først litt utputt (skriv parameter) Så innputt. Tolker brukerens tekst som kode.

11 OBS: funksjonsargument er kopier Viktig å huske på.

12 Egne funksjoner Eksempel: lag funksjon som regner ut summen av to tall. Helt unyttig, har + men fin sammenlikning.

13 Egne funksjoner Opprett ny fil funksjonsnavn.m function returverdi = funksjonsnavn(parameter1, parameter2) <kode> end

14 Utregning av funksjonskall x = pluss(2, 3); Forklar på tavla Inkluder oppretting av parameterene a og b og utførelse av funksjonskallet her.

15 Funksjonsvariabler er lokale x = pluss(2, 3); disp(x); % Skriver ut 5 disp(a); % Feilmelding disp(resultat); % Feilmelding

16 Returvariable er ikke knyttet til omgivelsene function resultat = pluss(a, b) x = a + b; % Ikke riktig! end Må gi en verdi til resultat

17 Returvariable kan hete hva som helst function tjolahopp = pluss(a, b) tjolahopp = a + b; end Navnet er skjult for omverdenen.

18 Parameter vs argument Parameter: et funksjonsdefinisjonsbegrep. Argument: et funksjonskallbegrep. Eksempel: a og b er parametere, 2 og 3 er argumenter.

19 Eksempeloppgaver, forskjellige parametere og returverdier 1. Lag en funksjon som inverterer et tall.

19 Eksempeloppgaver, forskjellige parametere og returverdier 1. Lag en funksjon som inverterer et tall. 2. Lag en funksjon som regner ut a + b*c

19 Eksempeloppgaver, forskjellige parametere og returverdier 1. Lag en funksjon som inverterer et tall. 2. Lag en funksjon som regner ut a + b*c 3. Lag en funksjon som returnerer et tall lest inn fra brukeren.

19 Eksempeloppgaver, forskjellige parametere og returverdier 1. Lag en funksjon som inverterer et tall. 2. Lag en funksjon som regner ut a + b*c 3. Lag en funksjon som returnerer et tall lest inn fra brukeren. 4. Lag en funksjon som tar en liste studenter, og regner ut hvor mange studenter som blir igjen hvis vi deler dem inn i grupper på tre.

19 Eksempeloppgaver, forskjellige parametere og returverdier 1. Lag en funksjon som inverterer et tall. 2. Lag en funksjon som regner ut a + b*c 3. Lag en funksjon som returnerer et tall lest inn fra brukeren. 4. Lag en funksjon som tar en liste studenter, og regner ut hvor mange studenter som blir igjen hvis vi deler dem inn i grupper på tre. 5. Lag en funksjon som returnerer en vektor med en gitt startverdi, en gitt steglengde mellom element, og et gitt antall element.

20 Samme navn på parameter og retur function pris = totalpris(antall_epler, antall_bananer, pris) pris = antall_epler * pris; % Huff huff, dette går ikke bra! Variabelen pris ble nemli % overskrevet i forrige linje, så vi får ikke tak i % argumentverdien lenger. pris = pris + antall_bananer * pris; end Kan ha samme verdi uten at Matlab klager. Det kan utnyttes...... men det kan og føre til forvirrende feil.

21 Kan ikke endre parametre function endre_alder(studentaldre, student, ny_alder) studentaldre(student) = ny_alder; end % Prøver vi å bruke funksjonen som under, vil det ikke ha noen % effekt: studentaldre = [ 19, 21, 20 ]; endre_alder(studentaldre, 1, 20); disp(studentaldre); % Skriver ut [ 19, 21, 20 ]

22 Kan utnytte likt variabelnavn function studentaldre = endre_alder(studentaldre, student,... ny_alder) studentaldre(student) = ny_alder; end % Funksjonen vil da brukes slik: studentaldre = [ 19, 21, 20 ]; studentaldre = endre_alder(studentaldre, 1, 20); disp(studentaldre); % Skriver ut [ 20, 21, 20 ];

23 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end Globale variabler y = 12 funksjon(12) Lokale variabler x = 12

24 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end - Utskrift sender verdier til skjerm Globale variabler y = 12 funksjon(12) Lokale variabler x = 12

25 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end - Utskrift sender verdier til skjerm (mangler semikolon) Globale variabler y = 12 Lokale variabler funksjon(12) x = 12 y = y = y = 24 24 24

26 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end - Utskrift sender verdier til skjerm Globale variabler y = 12 Lokale variabler funksjon(12) y = x = 12 y = 24 24 24 24

27 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end - Utskrift sender verdier til skjerm Globale variabler y = 12 Lokale variabler funksjon(12) x = 12 y = y = 24 24 24 24 24

28 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end - Utskrift sender verdier til skjerm - Retur av verdier er overføring av lokale variabler til der funksjonen ble kalt. Globale variabler y = 12 Lokale variabler funksjon(12) x = 12 y = y = 24 24 24 24

29 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end - Utskrift sender verdier til skjerm - Retur av verdier er overføring av lokale variabler til der funksjonen ble kalt. Globale variabler Lokale variabler y = 12 funksjon(12) Hva er y? x = 12 y = 24 y = 24 24 24

30 Forskjell på retur og utskrift I kommandovindu y = 12; x = funksjon(y); I fil funksjon.m function y = funksjon(x) y = x + x disp(y); fprintf( %d, y); end - Utskrift sender verdier til skjerm - Retur av verdier er overføring av lokale variabler til der funksjonen ble kalt. Globale variabler Lokale variabler y = 12 x = 24 funksjon(12) 24 x = 12 y = 24 y = 24 24 24

31 Eksempeloppgave Løs introduksjonseksempelet.

32 Oversikt Funksjoner Matriser Matriseoperasjoner Sannhetsuttrykk If-setninger

33 Motiverende eksempel Lag et program som sjekker om et brett i gamblingspillet Extra har vunnet noe gitt et brett som angir hvorvidt en rute er dekket eller ikke. Fylt brett Fylt indre felt Fylt ramme 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1

34 Vektorer som rader eller kolonner rundetider = [ 30, 29, 31, 30 ]; disp(rundetider); rundetider = [ 30; 29; 31; 30 ]; disp(rundetider); % Skriver ut tallene under hverandre. Vektorer: en-dimensjonale lister En dimensjon kan også gå nedover. Bruk semikolon.

35 Kolon blir rad oddetall_rad = 1:2:9; oddetall_kolonne = (1:2:9) ; % Fnutten er transponeringsoperator % som gjør rader til kolonner. disp(oddetall_rad); disp(oddetall_kolonne); disp(size(oddetall_rad)); % Skriver ut [ 1, 5 ] disp(size(oddetall_kolonne)); % Skriver ut [ 5, 1 ] Kolon lager rader. Må transponere for å få kolonne. size() gir dimensjoner.

36 Matriser: en samling vektorer rundetider = [ 25, 29, 31, 30 ;... 25, 31, 29, 29 ;... 24, 30, 32, 33 ]; disp(rundetider); disp(size(rundetider)); % Skriver ut [ 3, 4 ] Skill kolonner med komma Skill rader med semikolon Alternativt syn: vektorer er spesielle matriser hvor bare én dimensjon kan være større enn 1.

37 Hente ett element rundetid = rundetider(2, 3); disp(rundetid); % Skriver ut 29 Relativt likt vektorer. Må oppgi ønsket posisjon i hver dimensjon.

38 Hente flere verdier datoer = [ 7, 8, 9, 10, 11, 12, 13 ]; ma_to_fr = datoer([1, 4, 5]); helg = datoer([5, 6, 7]); helg = datoer(5:7); Kan godt hente flere verdier på en gang. Bruk lister med posisjoner.

39 Flere verdier fra matrise tider = rundetider([2, 3], 3); tider = rundetider(2:3, 3); % tider = rundetider(2, [2, 3]); tider = rundetider(2, 2:3); % tider = rundetider([2, 3], [1, 4]); Fungerer tilsvarende for matriser. Flere posisjoner i en eller flere dimensjoner.

40 Hente alt fra en dimensjon tider = rundetider(1, :); disp(tider); tider = rundetider(:, 4); Spesiell syntaks for å hente alt fra en dimensjon.

41 Illustrasjon av indeksering Ta dette på tavla: Enkeltelement: pek på rad, pek på kolonne. Flere element: pek på rad, pek på kolonne. Flere element, bruk av kolon til å lage vektor: regn ut vektor, pek på rad, pek på kolonne. Flere element, bruk av kolon som hel dimensjon: pek på rad, ta alle kolonner.

42 Tilordning av verdier Tilordning fungerer som for vektorer: indeksert uttrykk til venstre i variabletilordning. rundetider(2, 1) = 23;

43 Eksempeloppgave: tilordning 1. Sett alle de siste rundetidene til 30. 2. Sett rundetid 1 og 3 for løper 2 og 3 til 29.

44 Eksempeloppgave Løs introduksjonseksempelet: Lag en funksjon som angir hvorvidt et gitt Extra-brett av markeringer er et vinnerbrett eller ikke.

45 Oversikt Funksjoner Matriser Matriseoperasjoner Sannhetsuttrykk If-setninger

46 Motiverende eksempel Lag et program som lar en generere snittkarakter for elevene i en klasse, med korrekt vekting for forskjellige fagstørrelser. Fag Student 1 2 3... TDT4105 Fagvekt 7.5 TDT4105 6 4 4... TXX41YY 7.5 TXX41YY 4... 15... 5...... 7.5...

47 Regn med hele matriser x = 1 + 2; % Vanlig regning OK. v1 = [1, 2, 3]; v2 = [3, 2, 1]; v3 = v1 + v2; % Matriseregning også OK disp(v3); % Skriver ut [ 4, 4, 4 ] Kan regne direkte med hele matriser. Typisk svært effektivt.

48 Mange matriseoperatorer %... subtrahere: v4 = [9, 7, 5] - v3; disp(v4); % Skriver ut [ 5, 3, 1 ] %... og multiplisere: u = [ 1, 2, 3 ]; % En rad-vektor v = [ 3; 2; 1 ]; % En kolonne-vektor z = u * v; disp(z); % Skriver ut... 10?! Kan gjøre mye: pluss, minus, gange. Men vær obs: gjør kanskje ikke det du tror! Matriser har egne regler, især for multiplikasjon. Dette går ut over divisjon og opphøyd-i. Finnes egne elementvise operasjoner (.*,./,.^)

49 Eksempeloppgave Lag de fire første kvadrattallene, gitt følgende matrise: M = [ 1, 2; 3, 4 ];

50 Eksempeloppgave Løs introduksjonsproblemet: 1. Lag en funksjon som regner snittkarakter for alle elever gitt en matrise med karakterer og en vektor med vekter (matriseoperasjon). 2. Lag en funksjon som regner snitttkarakter for én elev, gitt flere semestre med karakterer og en tilsvarende matrise med vekter (elementvis operasjon).

51 Oversikt Funksjoner Matriser Matriseoperasjoner Sannhetsuttrykk If-setninger

52 Motiverende eksempel Lag et program som sjekker om et brett i gamblingspillet Extra har vunnet noe gitt en serie med trukne tall. Fylt brett Fylt indre felt Fylt ramme 11 28 45 59 75 14 22 38 71 9 13 49 66 63 7 1 2 72 19 33 67 68 44 40 20

53 Sannhetsuttrykk Som matteuttrykk, bortsett fra: Resultatet er enten true eller false Også kalt 1 og 0 Andre operatorer Lavere presedens

54 Operatorer Sammenlikne verdier Lik == Ulik ~= Mindre enn < Mindre enn eller lik <= Større enn eller lik >= Større enn >

55 Eksempler a = true; b = false; x = 1 < 2; y = 1 >= 2; z = 1 + 2 > 2 Lavere presedens på sammenlikning enn aritmetiske operatorer.

56 Regning med logiske verdier c = true + 3; disp(c); % Skriver ut 4 true og false kan ofte behandles som 1 og 0. Er ikke det samme når man indekserer matriser, som vi skal se.

57 Kombinasjon av sannhetsverdier Flere operatorer Òg && Eller Ikke ~ Sannhetstabeller x y x && y x y ~ x 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0

58 Eksempel tilbud_restaurant = true; tilbud_kino = false; blir_superkveld = tilbud_restaurant && tilbud_kino; blir_fin_kveld = tilbud_restaurant tilbud_kino; blir_middag_hjemme = ~tilbud_restaurant; Kombinasjoner har lavere presedens enn sammenlikning. har lavere presedens enn &&

59 Eksempeloppgave Anta at tilbudspris på kino er 100, tilbudspris på restaurant er 150, og budsjettet er 200. Avgjør om det blir penger til overs, ved å bruke våre tidligere definerte sannhetsvariabler.

60 Sammenlikningsoperasjoner for matriser A = [1, 2, 3] < [3, 2, 1]; disp(a); % Skriver ut [ 1, 0, 0 ] B = [2, 2, 2] == [1, 3, 2]; disp(b); % Skriver ut [ 0, 0, 1 ] Sammenlikning fungerer også for matriser. Gir elementvise svar.

61 Kombinasjon av logiske uttrykk for matriser disp(a B); % Skriver ut [ 1, 0, 1 ]; disp(a & B); % Skriver ut [ 0, 0, 0 ]; Når logiske matriser kombineres, må man bruke varianter av operatorene. Dobbelt symbol brukes når du ønsker en skalar betingelse som for eksempel passer i en if-setning. Enkelt symbol brukes når du ønsker deg en hel matrise med sannhetsverdier.

62 Indeksering med sannhetsmatrise ukedatoer = [ 7, 8, 9, 10, 11, 12, 13 ]; er_helgedag = [ false, false, false, false, false, true, true ]; helgedatoer = ukedatoer(er_helgedag); disp(helgedatoer); % Skriver ut [ 12, 13 ]; Kan indeksere med logisk matrise. Angir hvorvidt elementet på samme posisjon skal tas med eller ikke. Demonstrer på tavla hvordan eksempelet over fungerer.

63 Konsis logisk indeksering under_30 = rundetider < 30; raske_tider = rundetider(under_30); % Vanligvis direkte raske_tider = rundetider(rundetider < 30); Brukes ofte for å hente ut element i en matrise med en visst egenskap. Sløyfer ofte å navngi sannhetsmatrisen.

64 Eksempeloppgave Hent ut alle rundetidene som er raskere enn den raskeste tiden til løper 2. Hent tidene hvor løper tre var raskere enn løper 1. Regn ut hvor mange ganger løper tre var raskest.

65 Eksempeloppgave Løs introduksjonsproblemet: lag en funksjon som lager et markert Extra-brett fra et vanlig brett og en vektor med trukne verdier, som bruker funksjonen fra matrise-seksjonen til å returnere rett svar.

66 Oversikt Funksjoner Matriser Matriseoperasjoner Sannhetsuttrykk If-setninger

67 Motiverende eksempel Lag et program som skriver ut på hvilken måte, hvis noen, et Extra-brett er et vinnerbrett.

68 If-setninger Gjør forskjellige ting basert på betingelser Gjør Matlab til mer enn en vanlig kalkulator

69 Eksempler if 2 + 2 == 4 disp( Som forventet ); else disp( Oi ); end

70 Eksempler x = odds_for_rbk_seier(); if x > 100 % Selv ikke RBK er saa gode x = 100; end

71 Eksempler if beste_flysete_ledig() book_sete_nuh(); elseif nest_beste_ledig() book_sete_imorgen(); elseif nestnest_beste_ledig() book_hvis_desperat(); else staycation_ftw(); end

72 Oppgaver Skriv ut værmelding basert på temperatur. Temperatur Melding - -50 Sola har sluknet -50-20 Kakaovær -20-10 Grønn Swix FTW -10 10 Symmetrisk om null. 10 15 Trondheimssommer 15 Varmt nok

72 Oppgaver Bestem månedens diett basert på budsjetterte inntekter og utgifter Overskudd Diett > 0 Ingers rugbrød 0 Kneip < 0 Barkebrød

72 Oppgaver Implementer følgende mattefunksjon { x if x >= 0 absoluttverdi(x) = x if x < 0