Need help with this Matlab script question? For loop!!

1 回表示 (過去 30 日間)
Dylan Flores
Dylan Flores 2014 年 7 月 29 日
編集済み: Dylan Flores 2014 年 7 月 29 日
I keep getting this error 'Attempted to access x(3); index out of bounds because numel(x)=2.' It's really frustrating!!!

採用された回答

ES
ES 2014 年 7 月 29 日
You have to define x(3) as well (It should be 2 right ?), and then run the loop from x=3 and change the order of statements inside the while loop, because you set x(k) and then increment k. so for the new incremented k, x(k) will not be defined yet.
Please check:
%%Determining the golden ratio in a fibonacci sequence clear,clc % Defining the first two elements in the sequence x(1) = 1;
x(2) = 1;
x(3) = 2;
k = 3;
while (abs(x(k)./x(k-1) - x(k-1)./x(k-2))>0.001)
k = k+1;
x(k) = x(k-1) + x(k-2);
end

その他の回答 (1 件)

Robert Cumming
Robert Cumming 2014 年 7 月 29 日
編集済み: Robert Cumming 2014 年 7 月 29 日
It the start of your while loop the condition includes a check on x(3), hence why you get the error.
edit: you could fix it this way:
while true
x(k) = x(k-1) + x(k-2);
k = k+1;
if (abs(x(k)./x(k-1) - x(k-1)./x(k-2))>0.001)
break
end
end
  1 件のコメント
Dylan Flores
Dylan Flores 2014 年 7 月 29 日
So how do i correct this error?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by