Поиск…


Все и все с пустым массивом

Особая осторожность должна быть предпринята, когда существует вероятность того, что массив станет пустым массивом, когда дело доходит до логических операторов. Часто ожидается, что если 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow