OU logique entre éléments d'un tableau booléen ou numérique
b = or(A) b = or(A, 'r') b = or(A, 'c') b = or(A, n)
vecteur, matrice ou hypermatrice de booléens, d'entiers
encodés (de type entier inttype
quelconque), de décimaux, ou de nombres complexes.
A peut être encodée creuse
(sparse).
Un nombre est identifié à %F (faux)
s'il vaut 0 ou 0+0i. Sinon (%nan inclus), il est identifé
à %T (vrai).
![]() | Valeurs particulières de A :
|
Booléen simple si or(A) est utilisée
sans option "r", "c", n.
b vaut alors
A
sont %F ou nuls.A
est %T ou non nul.Sinon : vecteur ligne, colonne, matrice ou hypermatrice.
Voir la description de n ci-dessous.
Lorsque A est encodée creuse,
b l'est également.
N° <= ndims(A) de la dimension selon laquelle
or() est appliqué / projeté.
Par défaut, or() est appliqué
entre tous les éléments de
A. Sinon :
or() est
appliqué entre les lignes de A.
Si A est une matrice,
b est alors une
ligne, avec
b(j) = or(A(:,j))or() est appliqué entre les
colonnes de A.
Si A est une matrice,
b est alors une
colonne, avec
b(i) = or(A(i,:)).A est une hypermatrice
or() est appliqué selon
sa nème dimension.
Exemple: Si ndims(A)==3
et n=3,
b sera une matrice booléenne
de tailles size(A)([1 2]), avec
b(i,j) = or(A(i,j,:)).
or() applique un "OU" logique entre les éléments
de l'opérande unique A, et en calcule le résultat.
Pour appliquer un OU logique entre éléments respectifs de 2 tableaux
C et D de mêmes tailles,
utiliser l'opérateur dédié |.
Pourquoi or([]) vaut-il %F ?
Quels que soient les tableaux compatibles B et
C,
or([B C]) == (or(B) | or(C)).
Or, pour B = [], or([B C])==or(C).
Pour avoir toujours (or([]) | or(C)) == or(C),
or([]) doit impérativement être %F.
or([]) or(0) or(0+0*%i) or(%eps) or(%i) or(%nan) // Projection à travers une dimension / selon une direction : A = rand(2,5)<0.3 or(A) or(A, "r") // or(A, 1) est équivalent or(A, "c") // or(A, 2) est équivalent // Utilisation entre entiers encodés : A = int16(grand(3,5,"uin",-10,10)); A(abs(A)<8) = 0 or(A) or(A,1) // Avec une hypermatrice de nombres décimaux : A = rand(3,4,2); A(A<0.7) = 0 or(A,3) // Avec une matrice encodée creuse : A = sprand(70,100, 0.001) or(A, "r") or(A, "c") | ![]() | ![]() |
--> or([]) ans = F --> or(0) ans = F --> or(0+0*%i) ans = F --> or(%eps) ans = T --> or(%i) ans = T --> or(%nan) ans = T --> // Projection à travers une dimension / selon une direction : --> A = rand(2,5)<0.3 A = T F F F F F F T F F --> or(A) ans = T --> or(A, "r") // or(A, 1) est équivalent ans = T F T F F --> or(A, "c") // or(A, 2) est équivalent ans = T T --> // Utilisation entre entiers encodés : --> A = int16(grand(3,5,"uin",-10,10)); --> A(abs(A)<8) = 0 A = 0 0 0 -9 0 0 10 0 0 0 0 0 0 0 9 --> or(A) ans = T --> or(A,1) ans = F T F T T --> // Avec une hypermatrice de nombres décimaux : --> A = rand(3,4,2); --> A(A<0.7) = 0 A = (:,:,1) 0. 0. 0. 0. 0. 0.7065 0. 0.7227 0. 0. 0. 0.8977 (:,:,2) 0. 0. 0. 0.7901 0. 0. 0. 0.9809 0.9677 0. 0.7795 0.8187 --> or(A,3) ans = F F F T F T F T T F T T --> // Avec une matrice encodée creuse : --> A = sprand(70,100, 0.001) A = ( 70, 100) sparse matrix ( 18, 53) 0.7943 ( 23, 96) 0.4361 ( 38, 34) 0.9275 ( 56, 1) 0.1622 ( 69, 98) 0.3112 --> or(A, "r") ans = ( 1, 100) sparse boolean matrix ( 1, 1) T ( 1, 34) T ( 1, 53) T ( 1, 96) T ( 1, 98) T --> or(A, "c") ans = ( 70, 1) sparse boolean matrix ( 18, 1) T ( 23, 1) T ( 38, 1) T ( 56, 1) T ( 69, 1) T
| Version | Description |
| 6.0.0 | Les nombres complexes sont désormais acceptés. |