How to subtract the elements of an array

14 ビュー (過去 30 日間)
Hugo
Hugo 2020 年 9 月 10 日
編集済み: Matt J 2020 年 9 月 10 日
Hello,
I am coding an .m file in MATLAB R2018a. The code I have (partial) is:
nt=[8,17,22,25]'
for i=1:3
grad(i)=nt(i+1)-nt(i)
end
sumgrad=sum(grad)
As you can see, I am trying to subtract the 2nd element of the array is subtracted to the 1st and place it on the index 1 of the array grad(i). . Then, the 3rd element of the array is subtracted to the 2nd and place it on the index 2 of the array grad(i). By last, the 4th element of the array to the 3rd and place it on the index 3 of the array grad(i)
Then, all the elements of the array grad(i) are sum into the variable sumgrad.
I am getting this error:
Error: Index exceeds array bounds.
I am quite sure there is a better way of coding this. Could someone help me?
Best regards,
Hugo

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 9 月 10 日
Although your code seems correct and the error shouldn't occur, you can directly use diff() function and avoid the for-loop
nt=[8,17,22,25]';
grad = diff(nt);
sumgrad=sum(grad)
  1 件のコメント
Matt J
Matt J 2020 年 9 月 10 日
Even easier:
sumgrad=nt(end)-nt(1)

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

その他の回答 (1 件)

Matt J
Matt J 2020 年 9 月 10 日
編集済み: Matt J 2020 年 9 月 10 日
At which line does the error occur?The only thing I can think of is that you accidentally have a variable called "sum" previously defined in your workspace, e.g.,
sum=0;
nt=[8,17,22,25]'
for i=1:3
grad(i)=nt(i+1)-nt(i)
end
sumgrad=sum(grad)
Index exceeds the number of array elements (1).
Error in test (line 11)
sumgrad=sum(grad);

カテゴリ

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

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by