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