Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
and
ET logique entre éléments d'un tableau booléen ou numérique
Syntaxe
b = and(A) b = and(A, 'r') b = and(A, 'c') b = and(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
:and([])
vaut%T
.and(%nan)
vaut%T
.
- b
Booléen simple si
and(A)
est utilisée sans option"r", "c", n
.b
vaut alors- %F, si au moins un des éléments de
A
est %F ou zéro. - %T, sinon : tous les éléments de
A
sont %T ou non nuls ou %nan.
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 au moins un des éléments de
- n
N° <= ndims(A) de la dimension selon laquelle
and()
est appliqué / projeté. Par défaut,and()
est appliqué entre tous les éléments deA
. Sinon :- n = 1 | "r" :
and()
est appliqué entre les lignes deA
. SiA
est une matrice,b
est alors une ligne, avecb(j) = and(A(:,j))
- n = 2 | "c" :
and()
est appliqué entre les colonnes deA
. SiA
est une matrice,b
est alors une colonne, avecb(i) = and(A(i,:))
. - n > 2 : Si
A
est une hypermatriceand()
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) = and(A(i,j,:))
.
- n = 1 | "r" :
Description
and()
applique un "ET" logique entre les éléments
de l'opérande unique A
, et en calcule le résultat.
Pour appliquer un ET logique entre éléments respectifs de 2 tableaux
C
et D
de mêmes tailles,
utiliser l'opérateur dédié &
.
Pourquoi and([])
vaut-il %T
?
Quels que soient les tableaux compatibles B
et
C
,
and([B C]) == ( and(B) & and(C) )
.
Or, pour B = []
, and([B C])==and(C)
.
Pour avoir toujours (and([]) & and(C)) == and(C)
,
and([])
doit être %T
.
Exemples
and([]) and(0) and(0+0*%i) and(%eps) and(%i) and(%nan) // Projection à travers une dimension / selon une direction : A = rand(2,5)<0.5 and(A) and(A, "r") // and(A, 1) est équivalent and(A, "c") // and(A, 2) est équivalent // Utilisation entre entiers encodés : A = int16(grand(3,5,"uin",-10,10)); A(abs(A)<3) = 0 and(A) and(A,1) // Avec une hypermatrice de nombres décimaux : A = rand(3,4,2); A(A<0.2) = 0 and(A,3) // Avec une matrice encodée creuse : A = sprand(70,100, 0.001) and(A, "r") and(A, "c")
--> and([]) ans = T --> and(0) ans = F --> and(0+0*%i) ans = F --> and(%eps) ans = T --> and(%i) ans = T --> and(%nan) ans = T --> // Projection à travers une dimension / selon une direction : --> A = rand(2,5)<0.5 A = T T F F F F T F F T --> and(A) ans = F --> and(A, "r") // and(A, 1) est équivalent ans = F T F F F --> and(A, "c") // and(A, 2) est équivalent ans = F F --> // Utilisation entre entiers encodés : --> A = int16(grand(3,5,"uin",-10,10)); --> A(abs(A)<3) = 0 A = 0 0 -8 -6 8 -10 6 -5 3 -10 0 3 -10 7 10 --> and(A) ans = F --> and(A,1) ans = F F T T T --> // Avec une hypermatrice de nombres décimaux : --> A = rand(3,4,2); --> A(A<0.2) = 0 A = (:,:,1) 0.4052 0.4819 0.2806 0.2119 0.9185 0.264 0. 0. 0. 0.4148 0.7783 0.6857 (:,:,2) 0. 0.4062 0. 0.5896 0.6971 0.4095 0. 0.6854 0.8416 0.8784 0.5619 0.8906 --> and(A,3) ans = F T F T T T F F F T T T --> // Avec une matrice encodée creuse : --> A = sprand(70,100, 0.001) A = ( 70, 100) sparse matrix ( 4, 87) 0.6463 ( 5, 39) 0.4898 ( 7, 92) 0.7094 ( 29, 87) 0.794 ( 33, 1) 0.4087 ( 36, 79) 0.4876 ( 54, 65) 0.4456 ( 67, 45) 0.458 --> and(A, "r") ans = ( 1, 100)False sparse matrix --> and(A, "c") ans = ( 70, 1)False sparse matrix
Voir aussi
- & (distributif) — Binary AND between integers. Logical AND over/between booleans and numbers
- or — OU logique entre éléments d'un tableau booléen ou numérique
- ~ not — négation logique
Report an issue | ||
<< abs | Opérations matricielles | cross >> |