любой

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

Синтаксис

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.

пример

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

конец

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

Создайте 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

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

свернуть все

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char
Поддержка комплексного числа: Да

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

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

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

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

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

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

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

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

Была ли эта тема полезной?