# Index exceeds the number of array elements in while loop

조회 수: 8 (최근 30일)
Kaan Uçar 2019년 3월 25일
댓글: Kaan Uçar 2019년 4월 13일
I ve been trying to create a Fibonacci Sequence in which ratio of the adjacent values converge to 0.001. Here is the code I've written so far:
clc
clear
x = input('Please enter the first number in the series:');
y = input('Please enter the second number in the series:');
s(1) = x;
s(2) = y;
k = 3;
while abs(s(k)./s(k-1) - s(k-1)./s(k-2))>0.001
s(k) = s(k-1) + s(k-2)
k = k+1;
end
disp(s)
But when I run the code, it says; Index exceeds the number of array elements (2)
Error is on the eighth line.
##### 댓글 수: 3이전 댓글 1개 표시이전 댓글 1개 숨기기
Kaan Uçar 2019년 3월 25일
I defined s(3) as x + y and and still get the error. This time in parantheses it says 3 instead of 2.
Kevin Phung 2019년 3월 25일
편집: Kevin Phung 2019년 3월 25일
ok, and where is that in your code? What is see is that you've set s(1) and s(2) to be the user input.
while abs(s(k)./s(k-1) - s(k-1)./s(k-2))>0.001
starts with s(k) which is s(3), and that does not exist.

댓글을 달려면 로그인하십시오.

### 채택된 답변

Raghunandan V 2019년 3월 26일
Hi,
I just shuffled the code a bit. Check this:
clc
clear
x = input('Please enter the first number in the series:');
y = input('Please enter the second number in the series:');
s(1) = x;
s(2) = y;
k = 3;
Cond =1; % intialize the condition
while Cond > 0.001
s(k) = s(k-1) + s(k-2);
Cond = abs(s(k)/s(k-1) - s(k-1)/s(k-2));
k = k+1;
end
disp(s)
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Kaan Uçar 2019년 4월 13일
Sorry for the late response. I got the problem fixed. Thank you for your helps.

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

R2018b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by