MATLAB: Fibonacci Using While Loop

fibonacciwhile loop

I want to produce the nth term of the Fibonacci Sequence, however I keep getting the error, "Attempted to access fibonacci(4); index out of bounds because numel(fibonacci)=3." So far I have the following code:
function f = fibonacci(n)
fibonacci(1) = 1;
fibonacci(2) = 1;
fibonacci(3) = 2;
i = 3;
n = 1000000000000;
while (i <= n)
f = fibonacci(i-1) + fibonacci(i-2);
i = i + 1;
end
end

Best Answer

You don't assign your iterative result to the fibonacci array. E.g.:
fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);
HOWEVER, this formulation is increasing the size of the fibonacci variable in a loop, which can have severe timing consequences unless the parser saves you. I would advise that you reformulate your code to pre-allocate this array, or since you don't need to save the array work with only three values at a time ((i-2)'th, (i-1)'th, and i'th) using only three variables (e.g., fibonacci2, fibonacci1, fibonacci0).