or
OU logique entre éléments d'un tableau booléen ou numérique
Syntaxe
b = or(A) b = or(A, 'r') b = or(A, 'c') b = or(A, n)
Paramètres
- A
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 deA
:or([])
vaut%F
.or(%nan)
vaut%T
.
- b
Booléen simple si
or(A)
est utilisée sans option"r", "c", n
.b
vaut alors- %F, si tous les éléments de
A
sont %F ou nuls. - %T, sinon : au moins un des éléments de
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.- %F, si tous les éléments de
- n
N° <= ndims(A) de la dimension selon laquelle
or()
est appliqué / projeté. Par défaut,or()
est appliqué entre tous les éléments deA
. Sinon :- n = 1 | "r" :
or()
est appliqué entre les lignes deA
. SiA
est une matrice,b
est alors une ligne, avecb(j) = or(A(:,j))
- n = 2 | "c" :
or()
est appliqué entre les colonnes deA
. SiA
est une matrice,b
est alors une colonne, avecb(i) = or(A(i,:))
. - n > 2 : Si
A
est une hypermatriceor()
est appliqué selon sa nème dimension.Exemple: Si
ndims(A)==3
etn=3
,b
sera une matrice booléenne de taillessize(A)([1 2])
, avecb(i,j) = or(A(i,j,:))
.
- n = 1 | "r" :
Description
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
.
Exemples
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
Voir aussi
- | (distributif) — Binary OR between integers. Logical OR over/between booleans and numbers
- and — ET logique entre éléments d'un tableau booléen ou numérique
- ~ not — négation logique
Report an issue | ||
<< norm | Opérations matricielles | prod >> |