我有一個數組a=[1 2 3 4 5 6 7 8 9];
。 我想執行一個while
循環,它對數組a
執行一些操作,直到數組a
中的所有元素均爲零。 我該怎麼做?而所有零陣列在條件下
例如:
a=[1 2 3 4 5 6 7 8 9];
while(a contains all zero elements)
do some operations on a
end
在while
環路a
應該是a=[0 0 0 0 0 0 0 0 0]
的結束。
我有一個數組a=[1 2 3 4 5 6 7 8 9];
。 我想執行一個while
循環,它對數組a
執行一些操作,直到數組a
中的所有元素均爲零。 我該怎麼做?而所有零陣列在條件下
例如:
a=[1 2 3 4 5 6 7 8 9];
while(a contains all zero elements)
do some operations on a
end
在while
環路a
應該是a=[0 0 0 0 0 0 0 0 0]
的結束。
你只需要使用any
功能:
while any(a)
%...operations...
end
在這種情況下,你可以通過 '而' 模仿 'for' 循環:
i = length(a);
j = 1;
while j<=i
a(1,j) = 0;
j = j + 1;
end
或簡單地說,你可以做作爲gnovice建議:
j= 1;
while any(a)
a(j)=0;
j = j+1;
end
Thankyou非常gnovice你是正確的是在循環中不等於零 – user7341333
我試過使用任何,但它進入無限循環 – user7341333
@ user7341333:那麼這意味着'a'中的內容仍然不爲零。你在處理浮點值嗎?如果是這樣,你可能會得到'a'值非常接近零,但不是*完全*零。看看這個問題:[爲什麼24.0000不等於24.0000在MATLAB?](http://stackoverflow.com/q/686439/52738) – gnovice
@ user7341333如果你得到一個無限循環,你的操作不是將所有元素設置爲零。我會建議使用調試器來執行此操作(請記住gnovice關於浮點的警告)。 – beaker