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