Øvingsforelesning i Matlab (TDT4105) - Øving 1. Frist: 11.09

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