Øvingsforelesning i Matlab (TDT4105)

Øvingsforelesning i Matlab (TDT4105)
Øving 1. Frist: 11.09. Tema: matematiske uttrykk, variabler,
vektorer, funksjoner.
Benjamin A. Bjørnseth
2. september 2016
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!
• + er dere godt i gang?
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
4
Øvingsopplegget
— Mål: relevant trening i fagets pensum før eksamen
— Oppgaveløsning:
• Litt teori.
• Matlab.
— Krever registrering på http://itgk.idi.ntnu.no
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
5
Arbeidsmengde
— Totalt 10 øvinger, må ha 8/10 godkjent.
— To er auditorieøvinger, må ha minst én auditorieøving godkjent.
— Øvingstekst og frist på http://itgk.idi.ntnu.no
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
6
Hvordan besvare øvinger
— Teori og kodeforståelse: tekstsvar.
— Kodeoppgaver: Matlab-kode.
• Tilgjengelige datamaskiner med Matlab på datasal.
• Kan også løses på egen maskin.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
7
Datasal
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
8
Hjelperessurser
— Man kan få hjelp av alle studasser på datasal.
• Men kan være travelt mot slutten av uka.
— Vi har også et hjelpeforum på http://piazza.com
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
9
Godkjenning
— Kan ikke godkjennes elektronisk.
• Besvarelsen må forsvares på datasal.
— Godkjenning kun av egen studass.
• Teori og kodeforståelse: forklar svarene.
• Kodeoppgaver: demonstrer at koden fungerer, og forklar hvordan.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
10
Kom i gang med øvingsopplegget
1. Registrer deg på http://itgk.idi.ntnu.no.
2. Du får tildelt en studass.
3. Sjekk på Min Side (http://itgrk.idi.ntnu.no/) for å se hvilke
saltider du har, og hvilken sal studass sitter på.
4. Møt opp på studasstimene og få godkjent før fristen.
• 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)
11
Nettsider
itgk.idi.ntnu.no Øvinger, foiler, beskjeder, pensum, annen info.
itgrk.idi.ntnu.no Saltider og øvingsinnleveringsstatus.
piazza.com Spørsmål og svar.
Fordeler med Piazza:
— Rask responstid.
— Kan jobbe med andre ting mens man venter på svar.
— Læringsutbytte i å hjelpe andre.
— Muligens hjelp å få ved kvelds- og helgejobbing.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
12
Oversikt
Praktisk informasjon
Om øvingsforelesninger
Øving 1-materiale
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
13
Tidspunkt
— Øvingsforeleseninger i Matlab
• Onsdag 14.15 - 16.00 (parallell M2)
• Fredag 12.15 - 14.00 (parallell M1)
— Hold deg til din parallell
• Men det finnes altså backup
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
14
Videoer
— Tidligere år: oppgaveløsning.
— I år er dette spilt inn på video.
• http://itgk.idi.ntnu.no -> Matlab -> Øvingsforelesninger.
— To typer video:
• Kodeforståelse.
• Kodeoppgaver.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
15
Mulige bruksmåter
— Kan brukes på flere måter:
• Bare se på alt: blir tilsvarende fjorårets øvingsforelesninger, bare mer
kondensert innhold.
• Prøv å løse alle oppgavene selv, og se video hvis det ikke går (anbefalt).
• Se etter hjelp i videoene hvis man sliter med en øving.
— Merk: definitivt ikke en substitutt for vanlige forelesninger!
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
16
Anbefaling
— Oppfordrer alle til å se alt de første to ukene.
— Virker kanskje enkelt, men problemer med Matlab senere skyldes
gjerne:
1. Manglende erfaring.
2. Manglende forståelse av det grunnleggende.
— Senere uker: gjør det du får mest ut av.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
17
Øvingsforelesningstimene
— Hva så med øvingsforelesningstimene?
• Løsning av forrige ukes øving.
• Svar på spørsmål om innholdet i videoene.
• Kanskje presentasjon av neste øving?
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
18
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)
19
Oversikt
Praktisk informasjon
Om øvingsforelesninger
Øving 1-materiale
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
20
Føring og løsning av øvinger
— Kladd løsning på papir (hvis problemløsningsoppgave).
— Eksperimenter i kommandovindu med deler av løsningen.
— Skriv endelig løsning i en egen fil.
— Eksempelopppgave: regn ut 95 · 20 + 32.
— Eksempeloppgave: regn sum av annenhvert element i vektor.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
21
Script
— Noen ganger spør oppgaven bare om kommandolinjebruk.
— Kan logges og spilles av igjen vha et “script”.
• En linje av gangen sendes til kommandovindu.
— Mulige problem:
• Navnekrasj. Hva hvis vi har variabelen summer og scriptet summer.m?
• Matlab finner ikke filen.
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
22
Matteuttrykk
— Kahoot spørsmål 1-3
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
22
Matteuttrykk
— Kahoot spørsmål 1-3
— Operatorer
+, -
www.ntnu.no
1 + 6 - 7=1+6−7=0
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
22
Matteuttrykk
— Kahoot spørsmål 1-3
— 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)
22
Matteuttrykk
— Kahoot spørsmål 1-3
— 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)
22
Matteuttrykk
— Kahoot spørsmål 1-3
— 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)
23
Eksempler
2 + 2
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
23
Eksempler
2 + 2
www.ntnu.no
4
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
23
Eksempler
2 + 2
2 + 2 * 3
www.ntnu.no
4
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
23
Eksempler
2 + 2
2 + 2 * 3
www.ntnu.no
4
8
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
23
Eksempler
2 + 2
2 + 2 * 3
(2 + 2) * 3
www.ntnu.no
4
8
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
23
Eksempler
2 + 2
2 + 2 * 3
(2 + 2) * 3
www.ntnu.no
4
8
12
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
23
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)
23
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)
23
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)
23
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)
23
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)
23
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)
23
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)
23
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)
23
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)
23
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)
24
Eksempeloppgave
— 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)
25
Variabler
— Kahoot spørsmål 4
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
25
Variabler
— Kahoot spørsmål 4
— 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)
26
Variabeltilordning
— Syntaks: <variabelnavn> = <uttrykk>
1. Først evalueres uttrykket
2. Deretter opprettes variabeltilordningen
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
27
Variabeltilordning
— (Strengt tatt altså navngitt minne)
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
28
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)
29
Vektorer
— Kahoot spørsmål 5
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
29
Vektorer
— Kahoot spørsmål 5
• 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)
30
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)
31
Operasjoner på hele vektorer
— Kahoot spørsmål 6 og 7
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
31
Operasjoner på hele vektorer
— Kahoot spørsmål 6 og 7
— 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)
32
Eksempeloppgave
— Regn ut 91 ,
— Regn ut
www.ntnu.no
9
1,
2
9
9
2
og
og
3
9
9
3
i én operasjon
i én operasjon
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
32
Eksempeloppgave
— Regn ut 91 ,
— Regn ut
9
1,
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 astronautmasse = [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)
33
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)
34
Funksjoner: unngå repetisjon
— Kahootspørsmål 8
www.ntnu.no
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
34
Funksjoner: unngå repetisjon
— Kahootspørsmål 8
— 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)
35
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)
36
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)
37
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)
38
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)
39
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)
40
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)
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);
Globale variabler
y = 12
www.ntnu.no
Lokale variabler
funksjon(12)
x = 12
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
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
(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)
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
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
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)
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
www.ntnu.no
Lokale variabler
funksjon(12)
x = 12
y = 24
y =
24
24
24
Benjamin A. Bjørnseth, Øvingsforelesning i Matlab (TDT4105)
47
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)
48
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)
49
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)