...
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Den er ikke vektorisert, for den bruker ikke Matlabs innebygde operasjoner eller funksjoner og den kan heller ikke regne ut resultat for en hel vektor av verdier av gangen. Det er generelt vanskelig å vektorisere kode som trenger å bruke switch-setninger, siden de gjerne har mye sprikende oppførsel som det er vanskelig å uttrykke med én eller et lite knippe innebygde funksjoner og operasjoner. Det finnes en måte å gjøre det på her (se utdelt kode i oppgave 5.2.6), men generelt er det beste vi kan gjøre å lage en "liksom-vektorisert"-funksjon vha en for-løkke som behandler ett og ett element i parameteren. Ved å gjøre dette, kan kode som bruker funksjonen fortsatt skrives vektorisert. |
Oppgave 5.1.4:
...
Preallokering
Hva er ineffektivt med funksjonen som står i filen under? Hvordan kan den forbedres?
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 5.1.5: Tittel
Oppgavetekst
...
|
function retur = fib(n)
retur = [0, 1];
for i = 3:n
retur(i) = retur(i-1) + retur(i-2);
end
retur = retur(1:n);
end |
Videoforklaring (8:21)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=QHtL02MEO-Q |
---|
|
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Listen retur vokser med ett element for hver iterasjon i løkken. Det fører til mye kopiering av data. Den forbedres hvis man før for-løkken binder retur til en vektor med plass til alle elementene som skal produseres. |
Oppgave 5.1.
...
5:
...
Preallokering
Er preallokering nødvendig i funksjonen under?
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave x.y.z: Tittel
Oppgavetekst
|
function retur = diff_2(x)
retur = x(2:end) - x(1:end-1);
end |
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Nei, koden er vektorisert og produserer hele resultatlisten på en gang. Preallokering er bare nødvendig hvis vi produserer ett og ett element av gangen i en selvskrevet løkke. |
Kodeoppgaver
Oppgave 5.2.1: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 5.2.2: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 5.2.3: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 5.2.4: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 5.2.5: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 5.2.6: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave x.y.z: Tittel
Utdelt kode
Videoforklaring (mm:ss)
...