Summation after looping

4 visualizzazioni (ultimi 30 giorni)
Fajar Muharrom
Fajar Muharrom il 16 Mag 2012
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!

Risposta accettata

Matt Kindig
Matt Kindig il 16 Mag 2012
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

Più risposte (1)

Fajar Muharrom
Fajar Muharrom il 16 Mag 2012
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.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by