Main Content

any

Determinar si algún elemento de un arreglo es distinto a cero

Descripción

ejemplo

B = any(A) prueba en la primera dimensión del arreglo de A cuyo tamaño no es igual a 1 y determina si algún elemento es un número distinto de cero o 1 lógico (true). En la práctica, any es una extensión natural del operador lógico OR.

  • Si A es un vector, B = any(A) devuelve 1 lógico (true) si cualquiera de los elementos de A es un número distinto de cero o es 1 lógico, y devuelve 0 lógico (false) si todos los elementos son cero.

  • Si A es una matriz que no está vacía y no es un vector, B = any(A) trata las columnas de A como vectores y devuelve un vector fila de 1 y 0 lógicos.

  • Si A es una matriz 0 por 0 vacía, any(A) devuelve 0 lógico (false).

  • Si A es un arreglo multidimensional, any(A) actúa en la primera dimensión del arreglo cuyo tamaño no es igual a 1 y devuelve un arreglo de valores lógicos. El tamaño de esta dimensión se convierte en 1, mientras que los tamaños de todas las demás dimensiones se mantienen iguales.

B = any(A,'all') prueba todos los elementos de A. Esta sintaxis es válida para las versiones R2018b y posteriores de MATLAB®.

ejemplo

B = any(A,dim) prueba todos los elementos de la dimensión dim. La entrada dim es un escalar entero positivo.

ejemplo

B = any(A,vecdim) prueba elementos basándose en las dimensiones especificadas en el vector vecdim. Por ejemplo, si A es una matriz, any(A,[1 2]) prueba todos los elementos de A, puesto que todos los elementos de una matriz están incluidos en la parte del arreglo que establecen las dimensiones 1 y 2.

Ejemplos

contraer todo

Cree una matriz de 3 por 3.

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

     0     0     3
     0     0     3
     0     0     3

Pruebe cada columna para hallar elementos distintos de cero.

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

   0   0   1

Cree un vector de valores decimales y pruebe qué valores son inferiores a 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

La salida es un vector de valores lógicos. La función any reduce este vector de valores lógicos a una condición única. En este caso, B = any(A < 0.5) produce un 1 lógico.

Esto hace que any sea particularmente útil en instrucciones if.

if any(A < 0.5)

%do something

else

%do something else

end

El código se ejecuta en función de una condición única en lugar de un vector de condiciones que pueden entrar en conflicto.

Cree un arreglo multidimensional de 3 por 7 por 5 y pruébelo para ver si cualquiera de sus elementos es mayor que 3.

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

También puede probar el arreglo para elementos que sean menores que cero.

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

La sintaxis A(:) convierte los elementos de A en un vector columna único, así que puede utilizar este tipo de instrucción en un arreglo de cualquier tamaño.

Cree una matriz de 3 por 3.

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

     0     0     3
     0     0     3
     0     0     3

Pruebe las filas de A para hallar elementos distintos de cero especificando dim = 2.

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

   1
   1
   1

Cree un arreglo 3D y determine si hay elementos distintos de cero en cada página de datos (filas y columnas).

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

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como escalar, vector, matriz o arreglo multidimensional. La función any ignora los elementos de A que son NaN (no es un número).

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Soporte de números complejos:

Dimensión en la que operar, especificada como escalar entero positivo. Si no especifica la dimensión, el valor predeterminado es la primera dimensión del arreglo de tamaño mayor que 1.

Considere un arreglo de entrada bidimensional, A:

  • any(A,1) opera en elementos sucesivos de las columnas de A y devuelve un vector fila de valores lógicos.

  • any(A,2) opera en elementos sucesivos de las filas de A y devuelve un vector columna de valores lógicos.

any(A,1) column-wise computation and any(A,2) row-wise computation.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Vector de dimensiones, especificado como vector de enteros positivos. Cada elemento representa una dimensión del arreglo de entrada. Las longitudes de la salida en las dimensiones operativas especificadas son 1, mientras que las demás se mantienen iguales.

Considere un arreglo de entrada de 2 por 3 por 3, A. En ese caso, any(A,[1 2]) devuelve un arreglo de 1 por 1 por 3 cuyos elementos indican valores distintos de cero para cada página de A.

any(A,[1 2]) collapses the pages of a 2-by-3-by-3 array into a 1-by-1-by-3 array.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Arreglo lógico, devuelto como escalar, vector, matriz o arreglo multidimensional. La dimensión de A sobre la que actúa any tiene el tamaño 1 en B.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a