Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Kodeforståelsesoppgaver (total videotid: 39:54)

...

Hvilken verdi får x og y etter at vi kjører følgende script?

...

...

x = 2;
y = x;
x = x + 3;
4:51

...

Widget Connector
urlhttps://www.youtube.com/watch?v=rnRcPc7nQR4

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

x = 5

y = 2

Fremgangsmåte for å løse kodeforståelsesoppgaver som spør om hva som skjer når et script kjøres.
Oppgave 1.1.2: Forskjellige typer utskrift til skjerm

...

Code Block
titleoppgave_2.m
x = 2
disp(x + 2);
disp(x + 2)
4:42

...

Widget Connector
urlhttps://www.youtube.com/watch?v=IC858bIimHk

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
x =
     2
     4
     4
Utskrift til skjerm i Matlab fra manglende semikolon og kall til funksjonen disp.
Oppgave 1.1.3: Tre typer uttrykk i Matlab

...

Hva skrives ut når vi kjører følgende script?

...

titleoppgave_3.m

...

...

8:27

...

Widget Connector
urlhttps://www.youtube.com/watch?v=f38h-LMn4GE

Svar

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Hvordan vi kan dele Matlabs uttrykk inn i tre, for å forstå hvordan ans-variabelen fungerer.

...

...

Hva blir skrevet ut hvis vi kjører følgende script?

...

titleoppgave_4.m

...

...

6:54

...

Widget Connector
urlhttps://www.youtube.com/watch?v=GrBBawuLTsQ

Svar

...

titleHvis du har prøvd selv, trykk her for å se svaret...

...

Lengre oppgave som tester alle enkelttemaene fra oppgave 1.1.1, 1.1.2 og 1.1.3.
Oppgave 1.1.5: Lokale variabler

...

Hva blir skrevet ut hvis vi kjører scriptet «oppgave_5.m»?

Code Block
titleoppgave_5.m
x = 1;
y = 2;
z = 3;
f(z);
disp([x, y, z, ans]);

...

 

...

...

titlef.m

...

function y = f(x)
  z = x + x;
  y = z*z;
end
6:50

...

Widget Connector
urlhttps://www.youtube.com/watch?v=3E-SZcb3Xu8

Svar

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Hvordan variabelbindinger i utgangspunktet kun er tilgjengelig i funksjonen hvor variablene opprettes. Merk: script har ikke lokale variabler, men oppretter variabler der de kjøres fra.

...

...

 

    1.  Hvilken verdi får variabelen z etter at vi kjører scriptet «oppgave_6.m»?

    2. Hva blir skrevet ut til skjerm?

    3. Hva er sammenhengen mellom utskriften til skjerm og retur av verdi fra g?

 

Code Block
titleoppgave_6.m
y = 12;
z = g(y);
Code Block
titleg.m
function y = g(x)
  y = x + x;
  z = x * x
  disp(z);
  fprintf('%d\n', z); 
end

 

Videoforklaring (8:10)

Widget Connector
urlhttps://www.youtube.com/watch?v=whZrr3fTaCM

Svar

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Expand
titlea)
Code Block
z =
    24
Expand
titleb)
Code Block
z =
   144
   144
144

...

titlec)

...

8:10Forskjellen på utskrift vi ser til skjerm, og overføring av verdier mellom funksjoner internt i Matlab.

Kodeoppgaver (total videotid: 1:03:21)

Fahrenheit er et alternativ til Celsius som mål på temperatur. Man kan konvertere fra Celsius til Fahrenheit vha følgende formel:

Hvor mange grader Fahrenheit tilsvarer 20 grader Celsius? Bruk Matlab til å regne ut svaret.

Videoforklaring (4:41)

Widget Connector
urlhttps://www.youtube.com/watch?v=RqNkiUtl5Z8

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

Svaret er 68. Matlab-uttrykket som regner det ut er:

Code Block
9/5 * 20 + 32
4:40Generelt om løsning av kodeoppgaver, og hva det vil si å bruke Matlab til å løse problemer.
Oppgave 1.2.2: Bruk av Matlab til å regne ut flere uttrykk

...

For å få en intuitiv forståelse av hva en temperatur oppgitt i Fahrenheit betyr, har du laget følgende oversikt over hva temperaturer i Celsius betyr.

Image Removed

Bruk Matlab til å hjelpe deg lage en tilsvarende oversikt i Fahrenheit. Formelen er:

Videoforklaring (5:53)

Widget Connector
urlhttps://www.youtube.com/watch?v=hELKQq4Xefc

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...
5:52Om bruk av script i Matlab.

...

Fahrenheit-scriptet fra oppgave 1.2.2 fungerer, men det er rotete. Rydd opp med funksjoner. 

Utdelt kode

Expand
titlefahrenheit.m

Script fra oppgave 1.2.2

Code Block
titlefahrenheit.m
9/5*-20+32
9/5*0+32
9/5*18+32
9/5*37+32
9/5*100+32

...

22:20

...

Del 1 (7:23)Del 2 (4:46)Del 3 (6:05)Del 4 (4:06)
Widget Connector
urlhttps://www.youtube.com/watch?v=Kbx_ZBX8aGI
Widget Connector
urlhttps://www.youtube.com/watch?v=2qozQbhDTh4
Widget Connector
urlhttps://www.youtube.com/watch?v=9rzCa4DJuPg
Widget Connector
urlhttps://www.youtube.com/watch?v=jxVztSSbSag

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlefahrenheit.m
cels2fahr(-20)
cels2fahr(0)
cels2fahr(18)
cels2fahr(37)
cels2fahr(100)

...

titlecels2fahr.m

...

Bruk av funksjoner for å gjøre kode bedre.

Oppgave 1.2.4: Finn best temperaturvarsel

...

Du har funnet ut at du vil lage ditt eget varsel for julitemperaturen i Trondheim. Du har to brilliante ideer til hvordan du kan forutsi neste sommers temperatur:

  • Bruk gjennomsnittet av temperaturen i juli 2015 som estimat for alle dager i juli 2017.
  • Bruk snittemperaturen for 1. juli 2015 som estimat for 1. juli 2017, osv.

For å avgjøre hvilken som er best, vil du sjekke hvor godt modellene passer temperaturdata for 2016. Du har hentet data fra yr.no og lagret de i scriptet vaerdata.m.

Et vanlig mål på modellnøyaktighet er roten av snittet av kvadrert feil. Hvis  er estimatet og  er faktisk temperatur i dag nr. , er formelen:.

Hvilken metode later til å skulle fungere best?

Utdelt kode

...

titlevaerdata.m

...

titlevaerdata.m

...

...

18:49

...

Del 1 (8:48)Del 2 (10:01)
Widget Connector
urlhttps://www.youtube.com/watch?v=H0dZa0yepGM
Widget Connector
urlhttps://www.youtube.com/watch?v=zP3hum7TiuY

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...

Modell 1 har en RMSE på 3.5217 Celsius, mens modell 2 har en RMSE på 4.3179 Celsius. Modell 1 later derfor til å fungere best.

Code Block
titlermse.m
function result = rmse(modell_data, faktiske_data)
	result = sqrt(mean((modell_data - faktiske_data) .^ 2));
end

...

titleI kommandovindu

...

Større og vanskelig problemløsningsoppgave.
Oppgave 1.2.5: Funksjonstrening - innputt og parametere

Skriv en funksjon som lar brukeren skrive inn et tall, og som returnerer det dobbelte.

...

5:10

...

Widget Connector
urlhttps://www.youtube.com/watch?v=qFOKlQQ1Szo

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...

...

titlehent_dobbel.m

...

Forskjellen på funksjonsparametere og innputt fra en bruker av programmet.
Oppgave 1.2.6: Funksjonstrening - retur og utskrift

Skriv en funksjon som tar inn et tall, og som skriver ut det dobbelte.

...

6:28

...

Widget Connector
urlhttps://www.youtube.com/watch?v=kfuU8cXEQ9Y

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...

...

titleskriv_ut_dobbel.m

...

Forskjellen på retur fra funksjon og utskrift til skjerm.