MATLAB - Operazioni logiche
MATLAB offre due tipi di operatori logici e funzioni:
Dal punto di vista degli elementi: questi operatori operano sugli elementi corrispondenti degli array logici.
Cortocircuito: questi operatori operano su espressioni logiche scalari.
Gli operatori logici per elemento operano elemento per elemento su array logici. I simboli &, | e ~ sono gli operatori della matrice logica AND, OR e NOT.
Gli operatori logici di cortocircuito consentono il cortocircuito sulle operazioni logiche. I simboli && e || sono gli operatori logici di cortocircuito AND e OR.
Esempio
Crea un file di script e digita il codice seguente:
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 esegui il file, produce il seguente risultato:
Line 1 - Condition is true
Line 2 - Condition is true
Line 3 - Condition is not true
Line 4 - Condition is true
Funzioni per operazioni logiche
Oltre ai suddetti operatori logici, MATLAB fornisce i seguenti comandi o funzioni utilizzati per lo stesso scopo:
Sr.No. | Descrizione della funzione |
---|---|
1 | and(A, B) Trova AND logico di array o input scalari; esegue un AND logico di tutti gli array di input A, B, ecc. e restituisce un array contenente elementi impostati su 1 logico (vero) o 0 (falso). Un elemento dell'array di output è impostato su 1 se tutti gli array di input contengono un elemento diverso da zero nella stessa posizione dell'array. Altrimenti, quell'elemento è impostato su 0. |
2 | not(A) Trova il NOT logico di array o input scalare; esegue un NOT logico dell'array di input A e restituisce un array contenente elementi impostati su 1 logico (vero) o 0 (falso). Un elemento dell'array di output è impostato su 1 se l'array di input contiene un elemento con valore zero nella stessa posizione dell'array. Altrimenti, quell'elemento è impostato su 0. |
3 | or(A, B) Trova l'OR logico di array o input scalari; esegue un OR logico di tutti gli array di input A, B, ecc. e restituisce un array contenente elementi impostati su 1 logico (vero) o 0 (falso). Un elemento dell'array di output è impostato su 1 se qualsiasi array di input contiene un elemento diverso da zero nella stessa posizione dell'array. Altrimenti, quell'elemento è impostato su 0. |
4 | xor(A, B) OR esclusivo logico; esegue un'operazione OR esclusiva sugli elementi corrispondenti degli array A e B. L'elemento risultante C (i, j, ...) è logico vero (1) se A (i, j, ...) o B (i, j, ...), ma non entrambi, è diverso da zero. |
5 | all(A) Determina se tutti gli elementi della matrice A sono diversi da zero o veri.
|
6 | all(A, dim) Test lungo la dimensione di A specificata da scalar dim . |
7 | any(A) Determina se gli elementi dell'array sono diversi da zero; verifica se uno qualsiasi degli elementi lungo varie dimensioni di un array è un numero diverso da zero o è logico 1 (vero). La funzione any ignora le voci che sono NaN (Not a Number).
|
8 | any(A,dim) Test lungo la dimensione di A specificata da scalar dim . |
9 | false Logico 0 (falso) |
10 | false(n) è una matrice n per n di zeri logici |
11 | false(m, n) è una matrice m per n di zeri logici. |
12 | false(m, n, p, ...) è un array di zeri logici m per n per p per ... |
13 | false(size(A)) è un array di zeri logici della stessa dimensione dell'array A. |
14 | false(...,'like',p) è un array di zeri logici dello stesso tipo di dati e scarsità dell'array logico p. |
15 | ind = find(X) Trova indici e valori di elementi diversi da zero; individua tutti gli elementi diversi da zero dell'array X e restituisce gli indici lineari di quegli elementi in un vettore. Se X è un vettore riga, il vettore restituito è un vettore riga; in caso contrario, restituisce un vettore colonna. Se X non contiene elementi diversi da zero o è un array vuoto, viene restituito un array vuoto. |
16 | ind = find(X, k) ind = find(X, k, 'first') Restituisce al massimo i primi k indici corrispondenti alle voci diverse da zero di X. k deve essere un numero intero positivo, ma può essere di qualsiasi tipo di dati numerico. |
17 | ind = find(X, k, 'last') restituisce al massimo gli ultimi k indici corrispondenti alle voci diverse da zero di X. |
18 | [row,col] = find(X, ...) Restituisce gli indici di riga e di colonna delle voci diverse da zero nella matrice X. Questa sintassi è particolarmente utile quando si lavora con matrici sparse. Se X è un array N-dimensionale con N> 2, col contiene indici lineari per le colonne. |
19 | [row,col,v] = find(X, ...) Restituisce una colonna o un vettore riga v delle voci diverse da zero in X, nonché indici di riga e colonna. Se X è un'espressione logica, allora v è un array logico. L'output v contiene gli elementi diversi da zero della matrice logica ottenuta valutando l'espressione X. |
20 | islogical(A) Determina se l'input è un array logico; restituisce true se A è un array logico e false in caso contrario. Restituisce anche true se A è un'istanza di una classe derivata dalla classe logica. |
21 | logical(A) Converti valori numerici in logici; restituisce un array che può essere utilizzato per l'indicizzazione logica o per i test logici. |
22 | true Logico 1 (vero) |
23 | true(n) è una matrice n per n di quelle logiche. |
24 | true(m, n) è una matrice m per n di quelli logici. |
25 | true(m, n, p, ...) è un array m-per-n-per-p-... di quelli logici. |
26 | true(size(A)) è un array di quelli logici che ha la stessa dimensione dell'array A. |
27 | true(...,'like', p) è un array di quelli logici dello stesso tipo di dati e scarsità dell'array logico p. |