Matlab recursion -
need little understanding happening in function particularly line 7 [fnm1,fnm2] = fibrecurmemo(n-1); don't understand how new variable can declared here in array. example of happening appreciated.
function [fn,fnm1] = fibrecurmemo(n) % computes fibonacci number, f(n), using memoized recursion if n <= 2 fn = 1; fnm1 = 1; else [fnm1,fnm2] = fibrecurmemo(n-1); fn = fnm1 + fnm2; end end
say start with:
fibrecurmemo(3) %// n 3 the else statements run (since n > 2):
[fnm1,fnm2] = fibrecurmemo(2); %//statement 1 fn = fnm1 + fnm2; %//statement 2 before statement 2 can run, fibrecurmemo(2) must first run.
the if statements in fibrecurmemo(2) run (since n <= 2):
fn = 1; fnm1 = 1; as result, fibrecurmemo(2) returns 1, 1.
contininuing statement 1 above,
[1,1] = fibrecurmemo(2); %//statement 1 fn = 1 + 1; %//statement 2 finally,
[2, 1] = fibrecurmemo(3);
Comments
Post a Comment