MATLAB - Operações Lógicas

O MATLAB oferece dois tipos de operadores lógicos e funções -

  • Elemento-sábio - esses operadores operam em elementos correspondentes de matrizes lógicas.

  • Curto-circuito - esses operadores operam em expressões escalares lógicas.

Operadores lógicos elemento a elemento operam elemento por elemento em matrizes lógicas. Os símbolos &, | e ~ são os operadores lógicos de matriz AND, OR e NOT.

Operadores lógicos de curto-circuito permitem curto-circuito em operações lógicas. Os símbolos && e || são os operadores lógicos de curto-circuito AND e OR.

Exemplo

Crie um arquivo de script e digite o seguinte 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

Quando você executa o arquivo, ele produz o seguinte resultado -

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

Funções para operações lógicas

Além dos operadores lógicos mencionados acima, o MATLAB fornece os seguintes comandos ou funções usados ​​para o mesmo propósito -

Sr. Não. Descrição da função
1

and(A, B)

Encontra AND lógico de entradas de array ou escalares; executa um AND lógico de todas as matrizes de entrada A, B, etc. e retorna uma matriz contendo elementos configurados como 1 lógico (verdadeiro) ou 0 lógico (falso). Um elemento da matriz de saída é definido como 1 se todas as matrizes de entrada contiverem um elemento diferente de zero no mesmo local da matriz. Caso contrário, esse elemento é definido como 0.

2

not(A)

Encontra NÃO lógico de matriz ou entrada escalar; executa um NÃO lógico da matriz de entrada A e retorna uma matriz contendo elementos definidos como 1 lógico (verdadeiro) ou 0 lógico (falso). Um elemento da matriz de saída é definido como 1 se a matriz de entrada contiver um elemento de valor zero no mesmo local da matriz. Caso contrário, esse elemento é definido como 0.

3

or(A, B)

Encontra OR lógico de array ou entradas escalares; executa um OR lógico de todas as matrizes de entrada A, B, etc. e retorna uma matriz contendo elementos definidos como 1 lógico (verdadeiro) ou 0 lógico (falso). Um elemento da matriz de saída é definido como 1 se qualquer matriz de entrada contiver um elemento diferente de zero no mesmo local da matriz. Caso contrário, esse elemento é definido como 0.

4

xor(A, B)

OR exclusivo lógico; executa uma operação OR exclusiva nos elementos correspondentes das matrizes A e B. O elemento C resultante (i, j, ...) é lógico verdadeiro (1) se A (i, j, ...) ou B (i, j, ...), mas não ambos, é diferente de zero.

5

all(A)

Determine se todos os elementos da matriz A são diferentes de zero ou verdadeiros.

  • Se A for um vetor, all (A) retornará 1 lógico (verdadeiro) se todos os elementos forem diferentes de zero e retornará 0 lógico (falso) se um ou mais elementos forem zero.

  • Se A for uma matriz não vazia, all (A) trata as colunas de A como vetores, retornando um vetor linha de 1's e 0's lógicos.

  • Se A for uma matriz 0 por 0 vazia, all (A) retorna 1 lógico (verdadeiro).

  • Se A for uma matriz multidimensional, todos (A) atuam ao longo da primeira dimensão não única e retorna uma matriz de valores lógicos. O tamanho desta dimensão reduz para 1, enquanto os tamanhos de todas as outras dimensões permanecem os mesmos.

6

all(A, dim)

Testa ao longo da dimensão de A especificada por dim escalar .

7

any(A)

Determine se algum elemento da matriz é diferente de zero; testa se algum dos elementos ao longo de várias dimensões de uma matriz é um número diferente de zero ou lógico 1 (verdadeiro). A função any ignora entradas que são NaN (não é um número).

  • Se A for um vetor, any (A) retornará 1 lógico (verdadeiro) se algum dos elementos de A for um número diferente de zero ou 1 lógico (verdadeiro) e retornará 0 lógico (falso) se todos os elementos forem zero.

  • Se A for uma matriz não vazia, qualquer (A) trata as colunas de A como vetores, retornando um vetor linha de 1s e 0s lógicos.

  • Se A for uma matriz 0 por 0 vazia, qualquer (A) retornará 0 lógico (falso).

  • Se A for uma matriz multidimensional, qualquer (A) atua ao longo da primeira dimensão não única e retorna uma matriz de valores lógicos. O tamanho desta dimensão reduz para 1, enquanto os tamanhos de todas as outras dimensões permanecem os mesmos.

8

any(A,dim)

Testa ao longo da dimensão de A especificada por dim escalar .

9

false

0 lógico (falso)

10

false(n)

é uma matriz n por n de zeros lógicos

11

false(m, n)

é uma matriz m-por-n de zeros lógicos.

12

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

é uma matriz m por n por p por ... de zeros lógicos.

13

false(size(A))

é uma matriz de zeros lógicos do mesmo tamanho que a matriz A.

14

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

é uma matriz de zeros lógicos do mesmo tipo de dados e esparsidade que a matriz lógica p.

15

ind = find(X)

Encontre índices e valores de elementos diferentes de zero; localiza todos os elementos diferentes de zero da matriz X e retorna os índices lineares desses elementos em um vetor. Se X for um vetor linha, o vetor retornado será um vetor linha; caso contrário, ele retorna um vetor de coluna. Se X não contiver nenhum elemento diferente de zero ou for uma matriz vazia, uma matriz vazia será retornada.

16

ind = find(X, k)

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

Retorna no máximo os primeiros k índices correspondentes às entradas diferentes de zero de X. k deve ser um número inteiro positivo, mas pode ser de qualquer tipo de dados numéricos.

17

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

retorna no máximo os últimos k índices correspondentes às entradas diferentes de zero de X.

18

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

Retorna os índices de linha e coluna das entradas diferentes de zero na matriz X. Esta sintaxe é especialmente útil ao trabalhar com matrizes esparsas. Se X for uma matriz N-dimensional com N> 2, col contém índices lineares para as colunas.

19

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

Retorna um vetor coluna ou linha v das entradas diferentes de zero em X, bem como índices de linha e coluna. Se X for uma expressão lógica, então v é uma matriz lógica. A saída v contém os elementos diferentes de zero do array lógico obtido pela avaliação da expressão X.

20

islogical(A)

Determine se a entrada é uma matriz lógica; retorna verdadeiro se A for uma matriz lógica e falso caso contrário. Ele também retorna verdadeiro se A for uma instância de uma classe derivada da classe lógica.

21

logical(A)

Converta valores numéricos em lógicos; retorna uma matriz que pode ser usada para indexação lógica ou testes lógicos.

22

true

Lógico 1 (verdadeiro)

23

true(n)

é uma matriz n-por-n de lógicas.

24

true(m, n)

é uma matriz m-por-n de lógicas.

25

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

é uma matriz m-por-n-por-p-por -... de lógicas.

26

true(size(A))

é uma matriz de lógicas que é do mesmo tamanho da matriz A.

27

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

é um array lógico do mesmo tipo de dados e esparsidade que o array lógico p.