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