Index exceeds the number of array elements error

1 回表示 (過去 30 日間)
Daniel Lee
Daniel Lee 2020 年 11 月 2 日
コメント済み: Daniel Lee 2020 年 11 月 2 日
When I run below code, I get error: Index exceeds the number of array elements (5).
Can someone please help me understand why I'm getting this error? As for loop is processed 5 times (in below example), shouldnt I get matrix size of 1x5 of 'n' values? like n= [1 0 1 2 3]?
Thank you
>> r=exprnd(1/8, 1,5);
>> at=cumsum(r);
>> st=exprnd(1/8, 1, 5);
>> n = 0;
>> ord=2:1:6;
>> n=0;
>> for x=1:5; %x defines # of sims
if at(ord-1) + cumsum(st(ord-1)) ==at(ord)
n=n
elseif at(ord-1) + cumsum(st(ord-1)) < at(ord)
n=n-1
else
n=n+1
plot(n)
end
end

採用された回答

VBBV
VBBV 2020 年 11 月 2 日
編集済み: VBBV 2020 年 11 月 2 日
Use for loop index to access the vector as below
%if true
% code
% end
>> r=exprnd(1/8, 1,5);
>> at=cumsum(r);
>> st=exprnd(1/8, 1, 5);
>> n = 0;
>> ord=2:1:6;
>> n=0;
>> for x=1:5; %x defines # of sims
if at(ord(x)-1) + cumsum(st(ord(x)-1)) ==at(ord(x))
n=n
elseif at(ord(x)-1) + cumsum(st(ord(x)-1)) < at(ord(x))
n=n-1
else
n=n+1
plot(n)
end
end
  2 件のコメント
Daniel Lee
Daniel Lee 2020 年 11 月 2 日
Thanks Vasishta,
I got 4 results by running your version, but at the end, I'm still getting the same index exceeds the nubmer of array elements (5)...
Daniel Lee
Daniel Lee 2020 年 11 月 2 日
Ah, nevermind. I know why. When x=5, ord = 6 which doesnt exist. thanks

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by