How does the cycle for , if work?
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
0 commentaires
Réponses (2)
Adam
le 13 Mar 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
le 13 Mar 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.
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!