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.

  • Se A è un vettore, all (A) restituisce 1 logico (vero) se tutti gli elementi sono diversi da zero e restituisce 0 logico (falso) se uno o più elementi sono zero.

  • Se A è una matrice non vuota, all (A) tratta le colonne di A come vettori, restituendo un vettore riga di 1 e 0 logici.

  • Se A è una matrice vuota 0 per 0, all (A) restituisce 1 logico (vero).

  • Se A è un array multidimensionale, all (A) agisce lungo la prima dimensione non singleton e restituisce un array di valori logici. La dimensione di questa dimensione si riduce a 1 mentre le dimensioni di tutte le altre dimensioni rimangono le stesse.

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

  • Se A è un vettore, any (A) restituisce 1 logico (vero) se uno qualsiasi degli elementi di A è un numero diverso da zero o è 1 logico (vero) e restituisce 0 logico (falso) se tutti gli elementi sono zero.

  • Se A è una matrice non vuota, qualsiasi (A) tratta le colonne di A come vettori, restituendo un vettore riga di 1 e 0 logici.

  • Se A è una matrice vuota 0 per 0, any (A) restituisce 0 logico (falso).

  • Se A è un array multidimensionale, any (A) agisce lungo la prima dimensione non singleton e restituisce un array di valori logici. La dimensione di questa dimensione si riduce a 1 mentre le dimensioni di tutte le altre dimensioni rimangono le stesse.

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.