Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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 rangées deA
. SiA
est une matrice,b
est alors une rangée, 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 = F // %T attendu => Bug 14522 --> // 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 matrix ( 1, 1) T ( 1, 34) T ( 1, 53) T ( 1, 96) T ( 1, 98) T --> or(A, "c") ans = ( 70, 1) sparse 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 >> |