Scilab Website | Contribute with GitLab | Scilab Community | ATOMS toolboxes
Scilab Online Help
2026.1.0 - Français


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 de A :

  • 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.

n

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 :

  • n = 1 | "r" : or() est appliqué entre les lignes de A. Si A est une matrice, b est alors une ligne, avec b(j) = or(A(:,j))

  • n = 2 | "c" : or() est appliqué entre les colonnes de A. Si A est une matrice, b est alors une colonne, avec b(i) = or(A(i,:)).

  • n > 2 : Si A est une hypermatrice or() est appliqué selon sa nème dimension.

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

Historique

VersionDescription
6.0.0 Les nombres complexes sont désormais acceptés.
Report an issue
<< norm Opérations matricielles prod >>

Copyright (c) 2022-2026 (Dassault Systèmes S.E.)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue May 19 13:58:04 CEST 2026