Index exceeds the number of array elements in while loop

조회 수: 9 (최근 30일)
Kaan Uçar
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
Kaan Uçar
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
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.
Youve made k a constant 3, and your while loop CONDITION:
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
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
Kaan Uçar
Kaan Uçar 2019년 4월 13일
Sorry for the late response. I got the problem fixed. Thank you for your helps.

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

추가 답변 (0개)

카테고리

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