How does the cycle for , if work?

조회 수: 7 (최근 30일)
massi
massi 2015년 3월 13일
댓글: massi 2015년 3월 13일
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

답변 (2개)

Adam
Adam 2015년 3월 13일
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 2015년 3월 13일
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.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by