any

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

Описание

пример

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

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

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

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

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

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

пример

B = any(A,dim) проверяет элементы по размерности 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

Выходы являются вектором логических значений. The 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

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

свернуть все

Входной массив, заданный как скалярный, векторный, матричный или многомерный массив. The 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