2011-09-28 3 views
0

피보나치 숫자를 계산하기 위해 MatLab 함수를 작성하려고합니다. 아래에 나와있는 내용이 있지만 F(0)에 대한 오류가 발생합니다.처음 두 변수 만 지정하는 MatLab

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

어떻게 배열의 첫 번째 두 값이 0과 1 것을 MATLAB을 알 수 있습니까?

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 
+0

인덱스를 제로로 할 수 없으며, 인덱스 + 1을 사용하여 배열에 액세스 할 수 있습니다. – Alex

답변

1

귀하의 형식이 약간 꺼져,하지만 당신은 배열의 제로 인덱스에 값을 할당하는 것처럼 보인다. 제가 아는 한, MatLab은 배열에서 첫 번째 항목의 인덱스로 1을 사용합니다.

if n>=2if >=3으로 변경하고 0 및 1 항목 대신 1 및 2 색인 항목을 설정하면 내게 잘 될 것입니다.

는 N + 1으로 n 개의 변수를 대체하여, 이러한 변화를 반영하기 위해 인덱스를 다시 작성해야 의미도 Is zero based indexing available in MATLAB

0

MATLAB 1 기반 사용합니다 색인을 참조하십시오. 이것은 0에서 fibonacci를 시작하지만, 1에서 2, 1에서 3, 2에서 4, 5에서 3, 그리고 "n"번째 용어에 대해 n + 1에서 인덱싱됩니다.

관련 문제