How does the cycle for , if work?

8 visualizaciones (últimos 30 días)
massi
massi el 13 de Mzo. de 2015
Comentada: massi el 13 de Mzo. de 2015
Dear All, I have n=[0:1:10] and the column K=[-2,5,-5]. I would like to generate a cycle in which each time It takes an item of n and adds it to K, every time It checks if the sum(K) is zero: if it is zero it must write the value of "n".
I wrote this but it doesn't work:
for n=0:1:10
K=[-2,5,-5];
Z=K+n;
S=sum(Z);
if S==0
n
end
end
Could you help me, please.
Thanks in advance
Best regards
Massimo

Respuestas (2)

Adam
Adam el 13 de Mzo. de 2015
K=[-2,5,-5];
n = 0:10'
res = bsxfun( @plus, K, n' );
resSum = sum( res, 2 );
zeroSums = resSum == 0;
n( zeroSums )
should give you the result you want without needing a loop, if I understand your requirements correctly.

James Tursa
James Tursa el 13 de Mzo. de 2015
The reason it doesn't produce any output is because the sum is never 0. E.g., print out S each iteration to see what is going on:
for n=0:1:10
K=[-2,5,-5];
Z=K+n;
S=sum(Z);
disp(S);
if S==0
n
end
end
If you think the sum should have been 0 at some point, then you need to re-examine your algorithm and the problem you are solving.

Categorías

Más información sobre Loops and Conditional Statements en Help Center 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