All 和 Any 有空数组

当逻辑运算符有可能数组成为空数组时,需要特别小心。通常预计如果 all(A) 为真,则 any(A) 必须为真,如果 any(A) 为假,则 all(A) 也必须为假。在具有空数组的 MATLAB 中情况并非如此。

>> any([])
ans =
     0
>> all([])
ans =
     1

因此,例如,如果你要将数组的所有元素与特定阈值进行比较,则需要注意数组为空的情况:

>> A=1:10;
>> all(A>5)
ans =
     0
>> A=1:0;
>> all(A>5)
ans =
     1

使用内置函数 isempty 检查空数组:

a = [];
isempty(a)
ans =
1