любой

Определите, являются ли какие-либо элементы массива ненулевыми

Синтаксис

B = any(A)
B = any(A,'all')
B = any(A,dim)
B = any(A,vecdim)

Описание

пример

B = any(A) тесты вдоль первого измерения массива A, размер которого не равняется 1 и определяет, является ли какой-либо элемент ненулевым номером или логическим 1 (true). На практике any является естественным расширением логической операции ИЛИ.

  • Если A является вектором, то B = any(A) возвращает логический 1 (true), если какой-либо из элементов A является ненулевым номером или является логическим 1 и возвращает логический 0 (false), если все элементы являются нулем.

  • Если A является непустой, невекторной матрицей, то B = any(A) обрабатывает столбцы A как векторы, возвращая вектор - строку из логического 1 s и 0 s.

  • Если A является пустой матрицей 0 на 0, any(A) возвращает логический 0 (false).

  • Если A является многомерным массивом, any(A) действуют вдоль первого измерения массива, размер которого не равняется 1 и возвращает массив логических значений. Размер этой размерности становится 1, в то время как размеры всех других размерностей остаются то же самое.

B = any(A,'all') тесты по всем элементам A. Этот синтаксис допустим для версий MATLAB® R2018b и позже.

пример

B = any(A,dim) тестовые элементы по измерению dim. Тусклый вход является положительным целочисленным скаляром.

пример

B = any(A,vecdim) тестовые элементы на основе размерностей указаны в векторном vecdim. Например, если A является матрицей, то тесты any(A,[1 2]) по всем элементам в A, поскольку каждый элемент матрицы содержится в срезе массивов, заданном размерностями 1 и 2.

Примеры

свернуть все

Создайте 3х3 матрицу.

A = [0 0 3;0 0 3;0 0 3]
A = 3×3

     0     0     3
     0     0     3
     0     0     3

Протестируйте каждый столбец на ненулевые элементы.

B = any(A)
B = 1x3 logical array

   0   0   1

Создайте вектор десятичных значений и теста, какие значения - меньше чем 0,5.

A = [0.53 0.67 0.01 0.38 0.07 0.42 0.69];
B = (A < 0.5)
B = 1x7 logical array

   0   0   1   1   1   1   0

Вывод является вектором логических значений. Функция any уменьшает такой вектор логических значений к одному условию. В этом случае B = any(A < 0.5) приводит к логическому 1.

Это делает any особенно полезным в операторах if.

if any(A < 0.5)

%do something

else

%do something else

end

Код выполнен в зависимости от одного условия, а не вектора возможно конфликтных условий.

Создайте 3 7 5 многомерными массивами и тестом, чтобы видеть, больше ли какой-либо из его элементов, чем 3.

A = rand(3,7,5) * 5;
B = any(A(:) > 3)
B = logical
   1

Можно также протестировать массив на элементы, которые являются меньше, чем нуль.

B = any(A(:) < 0)
B = logical
   0

A(:) синтаксиса превращает элементы A в вектор отдельного столбца, таким образом, можно использовать этот тип оператора на массиве любого размера.

Создайте 3х3 матрицу.

A = [0 0 3;0 0 3;0 0 3]
A = 3×3

     0     0     3
     0     0     3
     0     0     3

Протестируйте строки A для ненулевых элементов путем определения dim = 2.

B = any(A,2)
B = 3x1 logical array

   1
   1
   1

Создайте трехмерный массив и определите, существуют ли ненулевые элементы на каждой странице данных (строки и столбцы).

A(:,:,1) = [2 0; 0 0];
A(:,:,2) = [0 0; 0 0];
A(:,:,3) = [0 0; 0 1];
B = any(A,[1 2])
B = 1x1x3 logical array
B(:,:,1) =

   1


B(:,:,2) =

   0


B(:,:,3) =

   1

Входные параметры

свернуть все

Входной массив, заданный как скалярный, векторный, матричный или многомерный массив. Функция any игнорирует элементы A, которые являются NaN (Не Номер).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Поддержка комплексного числа: Да

Величина для работы, заданная как положительный целый скаляр. Если значение не задано, то по умолчанию это первый размер массива, не равный 1.

Рассмотрите двумерный входной массив, A:

  • any(A,1) работает над последовательными элементами в столбцах A и возвращает вектор - строку из логических значений.

  • any(A,2) работает над последовательными элементами в строках A и возвращает вектор-столбец логических значений.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Вектор размерностей, заданных как вектор положительных целых чисел. Каждый элемент представляет размерность входного массива. Продолжительности вывода в заданных операционных размерностях равняются 1, в то время как другие остаются то же самое.

Рассмотрите 2 3х3 входным массивом, A. Затем any(A,[1 2]) возвращает 1 1 3 массивами, элементы которых указывают на ненулевые значения для каждой страницы A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Логический массив, возвращенный как скаляр, вектор, матрица или многомерный массив. Размерность A, действовавшего на any, имеет размер 1 в B.

Расширенные возможности

Представлено до R2006a