Summation after looping

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!

 Respuesta aceptada

Matt Kindig
Matt Kindig el 16 de Mayo de 2012

1 voto

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

Más respuestas (1)

Fajar Muharrom
Fajar Muharrom el 16 de Mayo de 2012

0 votos

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.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by