开发者

MatLab assigning only the first two variables in

I am trying to write a MatLab function to compute Fibonacci numbers. below is what I have but it co开发者_Python百科mes up with an error about F(0).

??? Attempted to access F(0); index must be a positive integer or logical.
Error in ==> fibonacci at 11
        F(0) = 0;

How do I tell matlab that the first two values in the array are 0 and 1??

function  F = fibonacci( n )
%A fibonacci sequence is where the next term in the series is given by the
%sum of the pervious two terms
%Only valid if n is greater than or equal to 2
if n >= 2 ;
    %Make an array with n terms
    F = zeros (1,n);
        %run a for loop from 2 to n
    for i = 2:n;
        F(0) = 0;
        F(1) = 1; 
        F(i) = F(i-1) + F(i-2)
    end
end
end


Your formatting is a bit off, but it seems like you are assigning a value to the zero-index of an array. As far as I know MatLab uses 1 as the index of the first item in an array.

If you change your if n>=2 to if >=3 and set the 1 and 2 index items instead of the 0 and 1 items you should be well on your way.

See also Is zero based indexing available in MATLAB


MATLAB uses 1-based indexing, which means you should rewrite indices to reflect this shift, by replacing your n variables with n+1. This starts the fibonacci at 0, but indexed to 1, 1 at 2, 1 at 3, 2 at 4, 3 at 5, and so on to your "n"th term, now be indexed at n+1.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜