You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Kodeforståelsesoppgaver

Oppgave 6.1.1: Persistente variabler

Hva skrives ut hvis vi kjører scriptet oppgave_1.m? Anta at funksjonen f() aldri har blitt kalt tidligere, eller at dens tilstand har blitt slettet vha clear f.
f() + f()
f()
clear f
f() 
f.m
function y = f()
    persistent x;
    if isempty(x)
        disp('Binder x til 0');
        x = 0;
    else
        x = x + 1;
    end
    fprintf('Retur er %d\n', x);
    y = x;
end

 

Videoforklaring (11:27)

 

Svar

Binder x til 0
Retur er 0
Retur er 1
ans =
     1
Retur er 2
ans =
     2
Binder x til 0
Retur er 0
ans =
     0

Oppgave 6.1.2: Retur av flere verdier

Hvilke verdier har variablene x, y og z etter at vi kjører scriptet «oppgave_2.m»?
oppgave_2.m
x = 1;
y = 2;
z = 3;
[y, z, x] = q(x, y, z);
q.m
function [z, y, x] = q(x, z, y)
end 

 

Videoforklaring (5:13)

Svar

x =
     1
y =
     2
z =
     3

Oppgave 6.1.3: Retur av flere verdier

Hva skrives ut hvis vi kjører scriptet «oppgave_3.m»?
oppgave_3.m
x = u()
u()
[x, y] = u()
[x, y, z] = u()
u.m
function [a, b, c] = u()
    a = 50;
    b = 7;
    c = 1000;
end 

 

Videoforklaring (7:31)

Svar

x =
    50
ans =
    50
x =
    50
y =
     7
x =
    50
y =
     7
z =
        1000

Oppgave 6.1.4: Funksjonsvariabler

Hva skrives ut hvis vi kjører scriptet oppgave_4.m?
oppgave_4.m
x = g
y = @g
x = y
x = y() 
g.m
function retur = g()
    retur = 100;
end 

Videoforklaring (6:47)

Svar

x =
   100
y = 
    @g
x = 
    @g
x =
   100

Oppgave 6.1.5: Anonyme funksjoner

Hva skrives ut hvis vi kjører scriptet oppgave_5.m?
oppgave_5.m
f = @(x) x + 3
f(2) == h(2) 
h.m
function retur = h(x)
    retur = x + 3;
end 

Videoforklaring (9:19)

Svar

f = 
    @(x)x+3
ans =
     1


Kodeoppgaver

Oppgave 6.2.1: Tittel

Oppgave 6.2.2: Tittel

Oppgave 6.2.3: Tittel

Oppgave 6.2.4: Tittel

Oppgave 6.2.5: Tittel

Oppgave 6.2.6: Tittel

 

  • No labels