Øvingsforelesning i Matlab (TDT4105) Øving 1. Frist: 11.09. Tema: matematiske uttrykk, variabler, vektorer, funksjoner. Benjamin A. Bjørnseth 1. september 2015 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 2 Oversikt Praktisk informasjon Om øvingsforelesninger Øving 1-materiale www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 3 Kahoot — Oppvarming! www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 4 Øvingsopplegget — Mål: relevant trening i fagets pensum før eksamen • Litt teori • Matlab — Krever registrering på http://itgk.idi.ntnu.no www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 5 Øvingsopplegget — Tilgjengelige datamaskiner med Matlab på datasal — Kan også løses på egen datamaskin • Spør orakeltjenesten om installasjon. • Potensielt via remote desktop til datasalmaskiner: ts-stud11.idipc.idi.ntnu.no. — Øvingene må godkjennes av studass på datasal før frist — Kan ikke godkjennes elektronisk • Besvarelsen må forsvares på datasal — Studass vil gi dere veiledning — Piazza kan også brukes til spørsmål www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 6 Øvingsopplegget 1. Registrer deg på itgk.idi.ntnu.no 2. Du får en tilfeldig valgt studass 3. Studass sender deg epost om hvor og når du skal møte for hjelp og godkjenning. 4. Møt opp på studasstimene og få godkjent før fristen • Nytt av året: kan også levere digitalt frem til faktisk frist på fredag, og forsvare besvarelsen for studass innen onsdag uka etter. www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 7 Nettsider itgk.idi.ntnu.no Øvinger, foiler, beskjeder, pensum, annen info. piazza.com Spørsmål og svar. www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 8 Oversikt Praktisk informasjon Om øvingsforelesninger Øving 1-materiale www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 9 Tidspunkt — Øvingsforeleseninger i Matlab • Tirsdag 10.15 - 12.00 (parallell M1) • Onsdag 12.15 - 14.00 (parallell M3) • Torsdag 12.15 - 14.00 (parallell M2) — Hold deg til din parallell • Men det finnes altså backup www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 10 Målgruppe — De som ikke synes det er kjempelett. • Vi prøver å unngå dypdykk utenfor pensum. — Vanskelige spørsmål mottas med takk • (men det er mulig de ikke blir besvart før etter timen) www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 11 Innhold i øvingsforelesningene — (Gå gjennom løsning på forrige øving) • Hvis relevant - etter hvert også om ønskelig — Gå gjennom oppgaver som bruker konsept som trengs for å løse neste øving. — Ikke fokus på teori — Fullt fokus på programmering • Ta med egen PC! www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 12 Filosofi bak innhold — Teori kan man lese i boka — Programmering må man øve på • Men øvelse gjør mester! • Alle kan lære dette — Tiden er knapp, og interessen muligens variabel • Vil bruke timene til å gi to timer ekstra praksis i uka. www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 12 Filosofi bak innhold — Teori kan man lese i boka — Programmering må man øve på • Men øvelse gjør mester! • Alle kan lære dette — Tiden er knapp, og interessen muligens variabel • Vil bruke timene til å gi to timer ekstra praksis i uka. — Med mindre teori blir etterspurt • Kom gjerne med innspill (finnes tilbakemeldingsskjema på itgk.idi.ntnu.no). • Timene er til for deres hjelp www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 13 Øvelse! — Kan ikke sies for ofte, jo mer du prøver jo mer lærer du. — Det som er fint med Matlab, er at det er veldig lett å prøve! • Det verste som kan skje, er at programmet ikke fungerer. www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 14 Problemressurser — Problemressurs #1: Øvinger • Ikke fokuser på minimum, vær så snill :) — Problemressurs #2: Oppgaver i læreboka — Problemressurs #3: https://projecteuler.net/ — Problemressurs #4: http://coderbyte.com — Problemressurs #5: http://www.reddit.com/r/dailyprogrammer www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 15 Usikker på Matlab? 1. Skriv noe (hva som helst) i kommandovinduet • Gjerne med utgangspunkt i bok, foiler og øvingstekst • Ha en forventning til hva som skal skje 2. Prøv å forstå feilmeldingen • • • • Bruk help Spør på piazza Google feilmeldingen Spør studass 3. Prøv å fikse feilen fra feilmeldingen • Bruk help • Spør på piazza • Spør studass 4. Tada! www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 16 Angående studassbruk — Studass er ikke bare på sal for å godkjenne — Planlegg gjerne å jobbe med øvingen på sal til saltider • Kanskje kan du legge all ITGK-jobbing til saltider? — Det er travelt de siste timene • Bør være klar for innlevering på dette tidspunktet www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 17 Angående mentalitet — Programmering handler i hovedsak ikke om programmeringsspråket • men om problemløsning — Oppgave: Løs problem vha programmering. Rett fokus Feil fokus www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 18 Oversikt Praktisk informasjon Om øvingsforelesninger Øving 1-materiale www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 19 Matlab syntaks — Ikke så mye problemløsning enda • Man må vite hva en hammer er før man kan bygge hus www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 19 Matlab syntaks — Ikke så mye problemløsning enda • Man må vite hva en hammer er før man kan bygge hus — (Start Kahoot!) www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 20 Matteuttrykk — Operatorer +, - www.ntnu.no 1 + 6 - 7=1+6−7=0 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 20 Matteuttrykk — Operatorer www.ntnu.no +, - 1 + 6 - 7=1+6−7=0 *, / 2 * 3 / 4= 2·3 4 = 1.5 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 20 Matteuttrykk — Operatorer www.ntnu.no +, - 1 + 6 - 7=1+6−7=0 *, / 2 * 3 / 4= ^ 2^3 = 23 = 8 2·3 4 = 1.5 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 20 Matteuttrykk — Operatorer +, - 1 + 6 - 7=1+6−7=0 *, / 2 * 3 / 4= ^ 2^3 = 23 = 8 2·3 4 = 1.5 — Presedens • Hva regnes ut først • Parenteser regnes ut aller først www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 www.ntnu.no 4 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 www.ntnu.no 4 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 www.ntnu.no 4 8 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 www.ntnu.no 4 8 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 www.ntnu.no 4 8 12 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 www.ntnu.no 4 8 12 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 www.ntnu.no 4 8 12 6 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) www.ntnu.no 4 8 12 6 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) www.ntnu.no 4 8 12 6 6 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) 2^4 www.ntnu.no 4 8 12 6 6 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) 2^4 www.ntnu.no 4 8 12 6 6 16 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) 2^4 2 ^ 3+1 www.ntnu.no 4 8 12 6 6 16 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) 2^4 2 ^ 3+1 www.ntnu.no 4 8 12 6 6 16 9 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) 2^4 2 ^ 3+1 2^(3 + 1) www.ntnu.no 4 8 12 6 6 16 9 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 21 Eksempler 2 + 2 2 + 2 * 3 (2 + 2) * 3 3 * 4 / 2 3 * (4 / 2) 2^4 2 ^ 3+1 2^(3 + 1) www.ntnu.no 4 8 12 6 6 16 9 16 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 22 Eksempeloppgave 1. Hvor mange Fahrenheit tilsvarer 20°C? • Formelen er 9 5 · celsius + 32 2. Hva er stigningstallet til linjen gjennom (1, 3) og (3, -7)? • Formelen er www.ntnu.no y2 −y1 x2 −x1 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 22 Eksempeloppgave 1. Hvor mange Fahrenheit tilsvarer 20°C? • Formelen er 9 5 · celsius + 32 2. Hva er stigningstallet til linjen gjennom (1, 3) og (3, -7)? • Formelen er y2 −y1 x2 −x1 3. Kahoot spørsmål 1-3 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 23 Variabler — Navngitte verdier • Navn av bokstaver, tall, og understrek. — Kan slå opp verdien ved å skrive navnet — Kan siden endre oppslaget www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 24 Variabeltilordning — Syntaks: <variabelnavn> = <uttrykk> 1. Først evalueres uttrykket 2. Deretter opprettes variabeltilordningen www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 25 Variabeltilordning — (Strengt tatt altså navngitt minne) www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 26 Eksempeloppgave — Opprett variabelen radius med verdien 3 — Regn ut volumet av en kule med radius 3, ved å bruke variabelen radius. • Formelen er 34 πradius3 — Opprett variabelen V_kule til å holde volumet. — Doble verdien av variablen V_kule. — Null ut alle definerte variabler. www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 26 Eksempeloppgave — Opprett variabelen radius med verdien 3 — Regn ut volumet av en kule med radius 3, ved å bruke variabelen radius. • Formelen er 34 πradius3 — Opprett variabelen V_kule til å holde volumet. — Doble verdien av variablen V_kule. — Null ut alle definerte variabler. — Kahoot spørsmål 4 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 27 Vektorer — For å holde en liste med verdier, kan man bruke vektorer • [1, 2, 3, 4, 5] • Kan opprettes vha kolon: 1:5 • Kan oppgi steglengde: 1:2:10 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 27 Vektorer — For å holde en liste med verdier, kan man bruke vektorer • [1, 2, 3, 4, 5] • Kan opprettes vha kolon: 1:5 • Kan oppgi steglengde: 1:2:10 — Eksempel: radiuser = 1:10 — Hent ut radius nr. 5 • radiuser(5) — Hent ut siste radius • radiuser(end) • Evt. radiuser(length(radiuser)) www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 28 Eksempeloppgave — Lag en vektor med de fem første positive oddetallene. Lagre den i variabelen v1. — Lag en vektor med heltallene fra 10 ned til 0, i den rekkefølgen. Lagre den i variabelen v2. — Lag en vektor med tallene [0.1, 0.2, . . . , 1.0], og lagre den i variablen v3. — Summer de siste elementverdiene i vektorene v1, v2 og v3 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 28 Eksempeloppgave — Lag en vektor med de fem første positive oddetallene. Lagre den i variabelen v1. — Lag en vektor med heltallene fra 10 ned til 0, i den rekkefølgen. Lagre den i variabelen v2. — Lag en vektor med tallene [0.1, 0.2, . . . , 1.0], og lagre den i variablen v3. — Summer de siste elementverdiene i vektorene v1, v2 og v3 — Kahoot spørsmål 5 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 29 Operasjoner på hele vektorer — Man kan utføre aritmetiske uttrykk også med vektorer • [1, 2, 3] * 2 = [2, 4, 6] • [1, 2] + [2, 1] = [3, 3] — Til vanlig er operatorene matriseoperasjoner • Operandene må ha dimensjoner som passer • Mer om dette neste uke — For å gjøre en operasjon per element, bruk .<op> (som .*, ./, .^) www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 29 Operasjoner på hele vektorer — Man kan utføre aritmetiske uttrykk også med vektorer • [1, 2, 3] * 2 = [2, 4, 6] • [1, 2] + [2, 1] = [3, 3] — Til vanlig er operatorene matriseoperasjoner • Operandene må ha dimensjoner som passer • Mer om dette neste uke — For å gjøre en operasjon per element, bruk .<op> (som .*, ./, .^) — Eksempel: Uttrykk [ 1, 2, 3 ] .* [ 3, 2, 1 ] [ 1, 2, 3 ] .^ 2 12 ./ [ 2, 3, 6 ] www.ntnu.no Resultat [ 3, 4, 3 ] [ 1, 4, 9 ] [ 6, 4, 2 ] Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 30 Eksempeloppgave — Regn ut 91 , — Regn ut 19 , www.ntnu.no 2 9 9 2 og og 3 9 9 3 i én operasjon i én operasjon Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 30 Eksempeloppgave — Regn ut 91 , — Regn ut 19 , 2 9 9 2 og og 3 9 9 3 i én operasjon i én operasjon — Regn ut tyngdekraften som virker på fire forskjellige astronauter på forskjellige planeter. • Opprett variabelen astronautvekt = [63, 70, 83, 50] • Opprett variabelen planet_g = [9.81, 3.71, 1.62, 24.79] • Regn ut variabelen tyngdekraft www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 30 Eksempeloppgave — Regn ut 91 , — Regn ut 19 , 2 9 9 2 og og 3 9 9 3 i én operasjon i én operasjon — Regn ut tyngdekraften som virker på fire forskjellige astronauter på forskjellige planeter. • Opprett variabelen astronautvekt = [63, 70, 83, 50] • Opprett variabelen planet_g = [9.81, 3.71, 1.62, 24.79] • Regn ut variabelen tyngdekraft — Kahoot spørsmål 6 og 7 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 31 Areal av sylinder — Formel: 2πrh + 2πr 2 — Oppgave: regn ut areal for sylindrene med • radius = 3, høyde = 7 • radius = 1, høyde = 8 • radius = 9, høyde = 3 (Hint: bruk elementvise operasjoner) www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 32 Funksjoner: unngå repetisjon — Hva hvis vi trenger arealformelen flere steder? — Lag en funksjon — Gir òg mening som matematisk funksjon • Asylinder (radius, hoyde) = 2π · radius · hoyde + 2π · radius2 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 33 Egne funksjoner — Opprett ny fil • funksjonsnavn.m function returverdi = funksjonsnavn(parameter1, parameter2) <kode> end www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 34 Oppgave 1. Opprett en funksjon for å regne ut overflatearealet av en sylinder • Asylinder (r , h) = 2πrh + 2πr 2 2. Opprett en funksjon for å regne ut volumet av en sylinder • Vsylinder (r , h) = πr 2 h 3. Opprett en funksjon som skriver ut volumet og arealet av en sylinder • Trenger ikke returverdi www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 34 Oppgave 1. Opprett en funksjon for å regne ut overflatearealet av en sylinder • Asylinder (r , h) = 2πrh + 2πr 2 2. Opprett en funksjon for å regne ut volumet av en sylinder • Vsylinder (r , h) = πr 2 h 3. Opprett en funksjon som skriver ut volumet og arealet av en sylinder • Trenger ikke returverdi 4. Kahootspørsmål 8 www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 35 Finnes mange funksjoner fra før — sum(), length(), min(), max(), mean(), median() — isprime() — disp(), input(), fprintf() — sqrt(), nthroot() — log(), log10(), sin(), cos(), atan() — integral() — Vil presentes etter behov. — Bruk help <funksjonsnavn> www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 36 Om innebygde funksjoner og variabelnavn — Vær forsiktig med hva du kaller dine variabler — Eksempel: hva skjer her? %% I kommandovinduet disp(sum(1:5)) % Skriver ut 15 sum = 1 + 2 + 3 disp(sum(1:5)) % Huffda clear sum % Løser problemet www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 37 Innputt og utputt — For å kommunisere med brukeren av programmet, kan vi bruke funksjonene disp() og input() — Oppgave: lag en funksjon som leser inn et tall fra brukeren, og skriver ut det dobbelte. — Oppgave: lag en funksjon som ber brukeren skrive inn høyden og radiusen til en sylinder, og som skriver ut volumet og arealet til sylinderen. www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 38 Globale og lokale variabler — Variabler laget i en funksjon eksiterer bare for den funksjonen. function y = f(x) % Lag lokal variabel ’x’ z = x + x; % Lag lokal variabel ’z’ y = z * z; % Lag lokal variabel ’y’ end %% I kommandovinduet x = 1; y = 2; z = 3; disp(input(’Skriv inn et tall’)); disp([x, y, z]); % Skriver ut "1 2 3" - de lokale % variablene til f er ikke tilgjengelige! www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 39 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); Globale variabler y = 12 www.ntnu.no Lokale variabler funksjon(12) x = 12 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 40 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); - Utskrift sender verdier til skjerm Globale variabler y = 12 www.ntnu.no Lokale variabler funksjon(12) x = 12 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 41 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); - Utskrift sender verdier til skjerm (mangler semikolon) Globale variabler y = 12 www.ntnu.no Lokale variabler funksjon(12) x = 12 y = 24 y = “y = 24” 24 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 42 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); - Utskrift sender verdier til skjerm Globale variabler y = 12 www.ntnu.no Lokale variabler funksjon(12) x = 12 y = 24 y = 24 24 24 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 43 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); - Utskrift sender verdier til skjerm Globale variabler y = 12 www.ntnu.no Lokale variabler funksjon(12) x = 12 y = 24 y = 24 24 24 24 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 44 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); - Utskrift sender verdier til skjerm Retur av verdier er overføring av lokale variabler til der funksjonen ble kalt. Globale variabler y = 12 www.ntnu.no Lokale variabler funksjon(12) x = 12 y = 24 y = 24 24 24 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 45 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); - 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) Hva er y? www.ntnu.no x = 12 y = 24 y = 24 24 24 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 46 Forskjell på retur og utskrift I fil “funksjon.m” I kommandovindu function y = funksjon(x) y = x + x disp(y); fprintf(‘%d’, y); end y = 12; x = funksjon(y); - Utskrift sender verdier til skjerm Retur av verdier er overføring av lokale variabler til der funksjonen ble kalt. Globale variabler y = 12 x = 24 www.ntnu.no Lokale variabler funksjon(12) 24 x = 12 y = 24 y = 24 24 24 Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105) 47 Bonus: Funksjonskall uten parenteser — Sender parametrene som strenger — Sammenlikn: • help sum • help(sum) • help(’sum’) www.ntnu.no Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
© Copyright 2024