FOR Loop

9 次查看(过去 30 天)
Mayu
Mayu 2011-12-12
编辑: DGM 2023-3-4
Let us say I have a row vector with "n" number of rows.
e.g. [0 27 29 45 66]';
How can I write a command using a FOR loop, that adds the first element with the second element, then the second element with the third element and so on until it gets to the "n" number of rows.
And in the end adding up all those answers.
So like: (0+27)+(27+29)+(29+45)... and so on.
I'm only a beginner in MatLab and spent hours trying to figure this out. Hope you guys can help. Thanks for the help in advance. :D

采纳的回答

Andrei Bobrov
Andrei Bobrov 2011-12-12
aout = 0;
for i1 = 1:numel(a)-1;
aout = aout + a(i1) + a(i1+1);
end
without loop for..end
n = numel(a)
aout = sum(a(1:n-1)+a(2:n))
  3 个评论
Mayu
Mayu 2011-12-12
Is there a command to just display the last cumulative element.
when i try to display the "aout" it always comes out as the cumulative frequency throughout the whole array.
Sean de Wolski
Sean de Wolski 2011-12-12
aout(end)

请先登录,再进行评论。

更多回答(2 个)

Shouvik Das
Shouvik Das 2011-12-12
Considering you need to store each intermediate output in another array. Let input array with n rows be inputArray
outputArray=[];
for i=1:length(inputArray)-1
outputArray(i)=inputArray(i) + inputArray(i+1);
end
Hope this helps.
Regards Shouvik
  1 个评论
Mayu
Mayu 2011-12-12
Thanks, works wonderfully :D

请先登录,再进行评论。


Anurag Pratap Singh
编辑:DGM 2023-3-4
Hi Mayu
You could use an extra array for storing every output let say addArr array and then add each elements of the addArr.
addArr = [];
for i = 1:length(inputArr)
addArr(i) = inputArr(i)+inputArr(i+1);
end
Then add each element of addArr
result = 0;
for i = 1:length(addArr)
result = result+addArr(i);
end
The result variable has the cummulative sum of all the elements in input array.
Thank you

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by