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.
|
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).
|
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. |