How to subtract the elements of an array

2 ビュー (過去 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 ExchangeMatrix Indexing についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by