MATLAB - Opérations logiques

MATLAB propose deux types d'opérateurs et de fonctions logiques -

  • Par élément - ces opérateurs opèrent sur les éléments correspondants des tableaux logiques.

  • Court-circuit - ces opérateurs fonctionnent sur des expressions logiques scalaires.

Les opérateurs logiques élément par élément opèrent élément par élément sur des tableaux logiques. Les symboles &, | et ~ sont les opérateurs de tableau logique AND, OR et NOT.

Les opérateurs logiques de court-circuit permettent le court-circuit sur les opérations logiques. Les symboles && et || sont les opérateurs logiques de court-circuit ET et OU.

Exemple

Créez un fichier de script et tapez le code suivant -

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

Lorsque vous exécutez le fichier, il produit le résultat suivant -

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

Fonctions pour les opérations logiques

Outre les opérateurs logiques mentionnés ci-dessus, MATLAB fournit les commandes ou fonctions suivantes utilisées dans le même but -

N ° Sr. Description de la fonction
1

and(A, B)

Recherche le ET logique du tableau ou des entrées scalaires; effectue un ET logique de tous les tableaux d'entrée A, B, etc. et renvoie un tableau contenant des éléments définis sur 1 logique (vrai) ou 0 logique (faux). Un élément du tableau de sortie est défini sur 1 si tous les tableaux d'entrée contiennent un élément différent de zéro à ce même emplacement du tableau. Sinon, cet élément est défini sur 0.

2

not(A)

Recherche le NON logique du tableau ou de l'entrée scalaire; exécute un NOT logique du tableau d'entrée A et renvoie un tableau contenant des éléments définis sur 1 logique (vrai) ou 0 logique (faux). Un élément du tableau de sortie est défini sur 1 si le tableau d'entrée contient un élément de valeur zéro à ce même emplacement de tableau. Sinon, cet élément est défini sur 0.

3

or(A, B)

Trouve le OU logique du tableau ou des entrées scalaires; effectue un OU logique de tous les tableaux d'entrée A, B, etc. et renvoie un tableau contenant des éléments définis sur 1 logique (vrai) ou 0 logique (faux). Un élément du tableau de sortie est défini sur 1 si des tableaux d'entrée contiennent un élément différent de zéro à ce même emplacement du tableau. Sinon, cet élément est défini sur 0.

4

xor(A, B)

OU exclusif logique; effectue une opération OU exclusif sur les éléments correspondants des tableaux A et B. L'élément résultant C (i, j, ...) est logique vrai (1) si A (i, j, ...) ou B (i, j, ...), mais pas les deux, est différent de zéro.

5

all(A)

Déterminez si tous les éléments du tableau du tableau A sont différents de zéro ou true.

  • Si A est un vecteur, all (A) renvoie 1 logique (vrai) si tous les éléments sont différents de zéro et renvoie 0 logique (faux) si un ou plusieurs éléments sont égaux à zéro.

  • Si A est une matrice non vide, all (A) traite les colonnes de A comme des vecteurs, renvoyant un vecteur ligne de 1 et de 0 logiques.

  • Si A est une matrice 0 par 0 vide, all (A) renvoie 1 logique (vrai).

  • Si A est un tableau multidimensionnel, tout (A) agit le long de la première dimension non singleton et renvoie un tableau de valeurs logiques. La taille de cette dimension se réduit à 1 tandis que les tailles de toutes les autres dimensions restent les mêmes.

6

all(A, dim)

Teste le long de la dimension de A spécifiée par dim scalaire .

sept

any(A)

Déterminez si des éléments du tableau sont différents de zéro; teste si l'un des éléments le long de différentes dimensions d'un tableau est un nombre différent de zéro ou un 1 logique (vrai). La fonction any ignore les entrées qui sont NaN (pas un nombre).

  • Si A est un vecteur, any (A) renvoie 1 logique (vrai) si l'un des éléments de A est un nombre différent de zéro ou 1 logique (vrai), et renvoie 0 logique (faux) si tous les éléments sont nuls.

  • Si A est une matrice non vide, any (A) traite les colonnes de A comme des vecteurs, renvoyant un vecteur ligne de 1 et de 0 logiques.

  • Si A est une matrice vide 0 par 0, any (A) renvoie 0 logique (faux).

  • Si A est un tableau multidimensionnel, any (A) agit le long de la première dimension non singleton et renvoie un tableau de valeurs logiques. La taille de cette dimension se réduit à 1 tandis que les tailles de toutes les autres dimensions restent les mêmes.

8

any(A,dim)

Teste le long de la dimension de A spécifiée par dim scalaire .

9

false

0 logique (faux)

dix

false(n)

est une matrice n-par-n de zéros logiques

11

false(m, n)

est une matrice m par n de zéros logiques.

12

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

est un tableau m-par-n-par-p-par -... de zéros logiques.

13

false(size(A))

est un tableau de zéros logiques de la même taille que le tableau A.

14

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

est un tableau de zéros logiques du même type de données et de la même parcimonie que le tableau logique p.

15

ind = find(X)

Trouvez des indices et des valeurs d'éléments différents de zéro; localise tous les éléments non nuls du tableau X et renvoie les indices linéaires de ces éléments dans un vecteur. Si X est un vecteur ligne, alors le vecteur renvoyé est un vecteur ligne; sinon, il renvoie un vecteur de colonne. Si X ne contient aucun élément différent de zéro ou est un tableau vide, un tableau vide est renvoyé.

16

ind = find(X, k)

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

Renvoie au plus les k premiers indices correspondant aux entrées non nulles de X. k doit être un entier positif, mais il peut être de n'importe quel type de données numériques.

17

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

renvoie au plus les k derniers indices correspondant aux entrées non nulles de X.

18

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

Renvoie les index de ligne et de colonne des entrées différentes de zéro dans la matrice X. Cette syntaxe est particulièrement utile lorsque vous travaillez avec des matrices creuses. Si X est un tableau à N dimensions avec N> 2, col contient des indices linéaires pour les colonnes.

19

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

Renvoie une colonne ou un vecteur de ligne v des entrées différentes de zéro dans X, ainsi que des index de ligne et de colonne. Si X est une expression logique, alors v est un tableau logique. La sortie v contient les éléments non nuls du tableau logique obtenu en évaluant l'expression X.

20

islogical(A)

Déterminez si l'entrée est un tableau logique; renvoie true si A est un tableau logique et false dans le cas contraire. Elle renvoie également true si A est une instance d'une classe dérivée de la classe logique.

21

logical(A)

Convertissez les valeurs numériques en valeurs logiques; renvoie un tableau qui peut être utilisé pour l'indexation logique ou les tests logiques.

22

true

Logique 1 (vrai)

23

true(n)

est une matrice n par n de nombres logiques.

24

true(m, n)

est une matrice m par n de valeurs logiques.

25

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

est un tableau m-par-n-par-p-par -... de valeurs logiques.

26

true(size(A))

est un tableau de valeurs logiques de la même taille que le tableau A.

27

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

est un tableau de données logiques du même type de données et de la même parcimonie que le tableau logique p.