Summation after looping

4 ビュー (過去 30 日間)
Fajar Muharrom
Fajar Muharrom 2012 年 5 月 16 日
I got a problem with summation after looping. Here is the problem :
------------------------------------------
for ri = 0:3
if ri == 0
mi = 1
elseif i > 0
mi = 1
end
end
r = sum(ri)
------------------------------------------
I'm expecting the result from r was 6 (0+1+2+3) but its result was 3. I think the sum command only read the last ri which is 3 and neglecting the other ri.
Any answer will be appreciated. Thanks!

採用された回答

Matt Kindig
Matt Kindig 2012 年 5 月 16 日
When you use the 'for' statement, you iteratively set ri to each of the values 0, 1, 2, 3. Thus ri only contains 3 after the loop. Instead, assign ri=0:3 to a different variable and have the for loop iterate over that.
For example,
rr = 0:3;
for ri=rr,
if ri == 0
mi = 1
elseif i > 0
mi = 1
end
end
r = sum(rr); %this will be 6
  1 件のコメント
Fajar Muharrom
Fajar Muharrom 2012 年 5 月 16 日
Thank you Matt Kindig :))

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

その他の回答 (1 件)

Fajar Muharrom
Fajar Muharrom 2012 年 5 月 16 日
1st problem was solved. but i got another one, it's similar with the 1st one. I couldn't get the right sum.
-----------------------------------------
i = 0:3;
rx = i
ry = i
rz = i
for r = i
ri = [r r r]
if r == 0
mi = 1
elseif r > 0
mi = 1
end
ri_mi = ri*mi
end
m = 3*mi
rC= 1/m*[sum(ri_mi,1)]
-----------------------------------------
in this case the sum of ri_mi only take the last mi_ri from the looping command. Do you have any idea to solve this problem, Matt Kindig? I will very appreciate it.

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by