May i know why i can't write: while(N~=[0 0 0]) in matlab?

5 次查看(过去 30 天)
N is a 1x3 array

采纳的回答

Walter Roberson
Walter Roberson 2011-12-4
while (N~=[0 0 0])
is valid syntax in MATLAB. The comparison would take place, giving a logical vector. When an "if" or "while" is asked to make a decision about a logical vector or array, it considers it to be true if and only if all of the elements of the vector or array are non-zero (true).
It is well-defined behavior, but if you think about it, the loop would stop as soon as one or more of the elements of N became 0.
You may instead wish to use
while any(N~=[0 0 0])
which could be rewritten
while any(N~=0)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!

Translated by