help with this code. I keep getting error message
3 ビュー (過去 30 日間)
古いコメントを表示
when i execute the code below, i get the error message - Array indices must be positive integers or logical values.
n=30
t=0; % initialisation
for t=1:1:n %time intervals
s(t)=sum(v(t-1)); %cumulative sum of the values before current value
s(t)=sum(v(t))+s(t-1); %cumulative sum of values up to current value
g(t)=v(t) - min(v); %current value minus minimum value in the matrix from first iteration to current iteration
if s(t) > 4
disp(t) %notify the time of change
disp(v(t)) % if cumulative sum is greater than 4, display when change occurs
end
t=t+1;
end
note: v is a 1x30 vector.
0 件のコメント
回答 (1 件)
Adam Danz
2018 年 7 月 31 日
編集済み: Adam Danz
2018 年 7 月 31 日
If you format your code using the {} button, people can help you more easily.
The first problem I see is the line below. On the first iteration, t = 1 so v(t-1) is v(0). As the error message indicates, indices must be positive integers or logicals. Here, 0 is neither and you're requesting the 0_th value of t which causes the error.
s(t)=sum(v(t-1));
Also, there's no sense in initializing t=0 prior to your for-loop where you redefine t as 1:1:n.
15 件のコメント
Adam Danz
2018 年 8 月 1 日
Folakemi, when you include code in these comments, use this button to format the code.

I can't help you without knowing exactly what error message you're getting. Please cut and paste the entire error message into the comments.
参考
カテゴリ
Help Center および File Exchange で Computer Vision with Simulink についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!