MATLAB - Operaciones lógicas

MATLAB ofrece dos tipos de funciones y operadores lógicos:

  • Elemento-sabio: estos operadores operan en elementos correspondientes de matrices lógicas.

  • Cortocircuito: estos operadores operan en expresiones lógicas escalares.

Los operadores lógicos de elementos operan elemento por elemento en matrices lógicas. Los símbolos &, | y ~ son los operadores de matriz lógica AND, OR y NOT.

Los operadores lógicos de cortocircuito permiten el cortocircuito en operaciones lógicas. Los símbolos && y || son los operadores lógicos de cortocircuito AND y OR.

Ejemplo

Cree un archivo de script y escriba el siguiente código:

a = 5;
b = 20;
   if ( a && b )
      disp('Line 1 - Condition is true');
   end
   if ( a || b )
      disp('Line 2 - Condition is true');
   end
   
   % lets change the value of  a and b 
   a = 0;
   b = 10;
   
   if ( a && b )
      disp('Line 3 - Condition is true');
   else
      disp('Line 3 - Condition is not true');
   end
   
   if (~(a && b))
   
      disp('Line 4 - Condition is true');
   end

Cuando ejecuta el archivo, produce el siguiente resultado:

Line 1 - Condition is true
Line 2 - Condition is true
Line 3 - Condition is not true
Line 4 - Condition is true

Funciones para operaciones lógicas

Además de los operadores lógicos mencionados anteriormente, MATLAB proporciona los siguientes comandos o funciones que se utilizan para el mismo propósito:

No Señor. Función descriptiva
1

and(A, B)

Encuentra el AND lógico de entradas de matriz o escalares; realiza un AND lógico de todas las matrices de entrada A, B, etc. y devuelve una matriz que contiene elementos configurados en 1 lógico (verdadero) o 0 lógico (falso). Un elemento de la matriz de salida se establece en 1 si todas las matrices de entrada contienen un elemento distinto de cero en la misma ubicación de la matriz. De lo contrario, ese elemento se establece en 0.

2

not(A)

Encuentra NO lógico de matriz o entrada escalar; realiza un NOT lógico de la matriz de entrada A y devuelve una matriz que contiene elementos configurados en 1 lógico (verdadero) o 0 lógico (falso). Un elemento de la matriz de salida se establece en 1 si la matriz de entrada contiene un elemento de valor cero en la misma ubicación de la matriz. De lo contrario, ese elemento se establece en 0.

3

or(A, B)

Encuentra el OR lógico de entradas de matriz o escalares; realiza un O lógico de todas las matrices de entrada A, B, etc. y devuelve una matriz que contiene elementos configurados en 1 lógico (verdadero) o 0 lógico (falso). Un elemento de la matriz de salida se establece en 1 si alguna de las matrices de entrada contiene un elemento distinto de cero en la misma ubicación de la matriz. De lo contrario, ese elemento se establece en 0.

4

xor(A, B)

OR exclusivo lógico; realiza una operación OR exclusiva en los elementos correspondientes de las matrices A y B. El elemento resultante C (i, j, ...) es lógicamente verdadero (1) si A (i, j, ...) o B (i, j, ...), pero no ambos, es distinto de cero.

5

all(A)

Determine si todos los elementos de la matriz A son distintos de cero o verdaderos.

  • Si A es un vector, todo (A) devuelve un 1 lógico (verdadero) si todos los elementos son distintos de cero y devuelve un 0 lógico (falso) si uno o más elementos son cero.

  • Si A es una matriz no vacía, todo (A) trata las columnas de A como vectores, devolviendo un vector de fila de unos y ceros lógicos.

  • Si A es una matriz vacía de 0 por 0, todo (A) devuelve un 1 lógico (verdadero).

  • Si A es una matriz multidimensional, todo (A) actúa a lo largo de la primera dimensión que no es singleton y devuelve una matriz de valores lógicos. El tamaño de esta dimensión se reduce a 1 mientras que los tamaños de todas las demás dimensiones siguen siendo los mismos.

6

all(A, dim)

Pruebas a lo largo de la dimensión de A especificada por escalar dim .

7

any(A)

Determine si algún elemento de la matriz es distinto de cero; comprueba si alguno de los elementos a lo largo de varias dimensiones de una matriz es un número distinto de cero o es lógico 1 (verdadero). La función any ignora las entradas que son NaN (no un número).

  • Si A es un vector, cualquier (A) devuelve un 1 lógico (verdadero) si alguno de los elementos de A es un número distinto de cero o es un 1 lógico (verdadero), y devuelve un 0 lógico (falso) si todos los elementos son cero.

  • Si A es una matriz no vacía, cualquier (A) trata las columnas de A como vectores, devolviendo un vector de fila de unos y ceros lógicos.

  • Si A es una matriz vacía de 0 por 0, cualquier (A) devuelve un 0 lógico (falso).

  • Si A es una matriz multidimensional, cualquier (A) actúa a lo largo de la primera dimensión que no es singleton y devuelve una matriz de valores lógicos. El tamaño de esta dimensión se reduce a 1 mientras que los tamaños de todas las demás dimensiones siguen siendo los mismos.

8

any(A,dim)

Pruebas a lo largo de la dimensión de A especificada por escalar dim .

9

false

0 lógico (falso)

10

false(n)

es una matriz n-por-n de ceros lógicos

11

false(m, n)

es una matriz m-por-n de ceros lógicos.

12

false(m, n, p, ...)

es una matriz m-by-n-by-p-by -... de ceros lógicos.

13

false(size(A))

es una matriz de ceros lógicos que tiene el mismo tamaño que la matriz A.

14

false(...,'like',p)

es una matriz de ceros lógicos del mismo tipo de datos y escasez que la matriz lógica p.

15

ind = find(X)

Encuentre índices y valores de elementos distintos de cero; localiza todos los elementos distintos de cero de la matriz X y devuelve los índices lineales de esos elementos en un vector. Si X es un vector de fila, entonces el vector devuelto es un vector de fila; de lo contrario, devuelve un vector de columna. Si X no contiene elementos distintos de cero o es una matriz vacía, se devuelve una matriz vacía.

dieciséis

ind = find(X, k)

ind = find(X, k, 'first')

Devuelve como máximo los primeros k índices correspondientes a las entradas distintas de cero de X. k debe ser un entero positivo, pero puede ser de cualquier tipo de datos numéricos.

17

ind = find(X, k, 'last')

devuelve como máximo los últimos k índices correspondientes a las entradas distintas de cero de X.

18

[row,col] = find(X, ...)

Devuelve los índices de fila y columna de las entradas distintas de cero en la matriz X. Esta sintaxis es especialmente útil cuando se trabaja con matrices dispersas. Si X es una matriz N-dimensional con N> 2, col contiene índices lineales para las columnas.

19

[row,col,v] = find(X, ...)

Devuelve un vector de columna o fila v de las entradas distintas de cero en X, así como índices de fila y columna. Si X es una expresión lógica, entonces v es una matriz lógica. La salida v contiene los elementos distintos de cero de la matriz lógica obtenida al evaluar la expresión X.

20

islogical(A)

Determine si la entrada es una matriz lógica; devuelve verdadero si A es una matriz lógica y falso en caso contrario. También devuelve verdadero si A es una instancia de una clase que se deriva de la clase lógica.

21

logical(A)

Convertir valores numéricos en lógicos; devuelve una matriz que se puede utilizar para indexación lógica o pruebas lógicas.

22

true

Lógico 1 (verdadero)

23

true(n)

es una matriz n-por-n de unos lógicos.

24

true(m, n)

es una matriz m-por-n de unos lógicos.

25

true(m, n, p, ...)

es una matriz m-by-n-by-p-by -... de unos lógicos.

26

true(size(A))

es una matriz de lógicas que tiene el mismo tamaño que la matriz A.

27

true(...,'like', p)

es una matriz de datos lógicos del mismo tipo de datos y escasez que la matriz lógica p.