Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2026.0.0 - Français


union

Ensemble de tous les éléments, lignes ou colonnes de deux matrices, sans doublons

Séquence d'appel

[v, ka, kb] = union(a, b)
[v, ka, kb] = union(a, b, orient)

Paramètres

a, b
peuvent être :
  • tableaux de booléens, de nombres, de texte, de duration ou de datetime. Matrices creuses booléennes ou numériques acceptées. Les types de a et de b peuvent être distincts mais compatibles pour la concaténation.
  • table et timeseries: a et b doivent avoir les mêmes noms de variable.

orient Orientation du traitement :
  • 1 or "r": union des lignes de a et de b.
  • 2 or "c": union des colonnes de a et de b.
Cette option n'est pas supportée pour les types table et timeseries.

v
dépend du type de a et b :
  • vecteur ligne, ou matrice. Le type de v est celui de [a(:) ; b(:)].
  • table ou timeseries

ka
vecteur ligne d'entiers : rangs dans a des éléments/lignes/colonnes de v présents dans a.

kb
vecteur ligne d'entiers : rangs dans b des éléments/lignes/colonnes de v restants issus de b.

Description

union(a,b), avec a et b vecteurs ou matrices, renvoie un vecteur ligne contenant les valeurs distinctes (classées par ordre croissant) contenues dans les éléments de [a(:);b(:)]. Si a et b sont des tables ou timeseries, union(a, b) renvoient les lignes uniques contenues dans a et b.

union(a,b,"r") ou union(a,b,1)renvoie la matrice formée de l'union des lignes distinctes de a et b triées dans l'ordre lexicographique croissant. Dans ce cas les matrices a et b doivent avoir le même nombre de colonnes.

union(a,b,"c") ou union(a,b,2)renvoie la matrice formée de l'union des colonnes distinctes de a et b triées dans l'ordre lexicographique croissant. Dans ce cas les matrices a et b doivent avoir le même nombre de lignes.

L'option orient n'est pas supportée pour les objets de type table et timeseries.

[v,ka,kb]=union(a,b) renvoie aussi les vecteurs d'indices ka et kb tels que v est une combinaison triée des termes de a(ka) et b(kb).

Exemples

A = [6  7  6 ; 5  8  3 ];
B = [1  7  1  0  6 ];

union(A, B)
[u, ka, kb] = union(A, B)
--> union(A, B)
 ans  =
   0.   1.   3.   5.   6.   7.   8.

--> [u, ka, kb] = union(A, B)
 u  =
   0.   1.   3.   5.   6.   7.   8.
 ka  =
   6.   2.   1.   3.   4.
 kb  =
   4.   1.

A = ["a" "b" "a" "c" "c" "b"
     "b" "c" "a" "b" "c" "c" ];
B = ["b" "a" "c" "c" "b" "a"
     "a" "c" "b" "b" "b" "b" ];

[U, ka, kb] = union(A, B, "c")
--> [U, ka, kb] = union(A, B, "c")
 U  =
  "a"  "a"  "a"  "b"  "b"  "b"  "c"  "c"
  "a"  "b"  "c"  "a"  "b"  "c"  "b"  "c"

 ka  =
   3.   1.   2.   4.   5.

 kb  =
   2.   1.   5.

[F, T] = (%f, %t);
A = sparse([T T F T F T ; F F F F T T ; T F F F F T ]); full(A)
B = sparse([F F T T F F ; T T T T T T ; T F T T T F ]); full(B)

[U, ka, kb] = union(A, B, "c");
issparse(U)
full(U), ka, kb
--> A = sparse([T T F T F T ; F F F F T T ; T F F F F T ]); full(A)
 ans  =
  T T F T F T
  F F F F T T
  T F F F F T

--> B = sparse([F F T T F F ; T T T T T T ; T F T T T F ]); full(B)
 ans  =
  F F T T F F
  T T T T T T
  T F T T T F

--> [U, ka, kb] = union(A, B, "c");
--> issparse(U)
 ans  =
  T

--> full(U), ka, kb
 ans  =
  F F F T T T
  F T T F F T
  F F T F T T

 ka  =
   3.   5.   2.   1.   6.
 kb  =
   1.

union() pour duration et datetime:

A = hours([1 7 7 4 3 6 6]);
B = hours([7 5 3 0]);
[u, ka, kb] = union(A, B)

A = datetime("today") + A;
B = datetime("today") + B;
[u, ka, kb] = union(A, B)

union() pour table:

A = table([1 7 7 4 3 6 6]', [1:7]');
B = table([7 5 3 0]', [2;2;5;5]);
[u, ka, kb] = union(A, B)

A = table([1;3;4;2], ["d";"c";"f";"h"], [%f;%t;%t; %f], "VariableNames", ["double", "string", "boolean"]);
B = table([2;3;4;1], [%t;%t;%t;%t], ["d";"c";"f";"h"], "VariableNames", ["double", "boolean", "string"]);
[u, ka, kb] = union(A, B)

union() pour timeseries:

A = timeseries(hours([1:10])', floor(rand(10,1)*10));
B = timeseries(hours(1:2:15)', floor(rand(8,1)*15));
[u, ka, kb] = union(A, B)

Voir aussi

  • brackets — Concaténation. Récipients d'une affectation. Résultats d'une function
  • unique — extrait (et trie) les éléments distincts d'un vecteur, matrice, hypermatrice

Historique

VersionDescription
6.1.0 Extension aux matrices booléennes.
6.1.1 Extension aux matrices creuses booléennes, réelles, ou complexes.
2026.0.0 Gestion des types duration, datetime, table et timeseries ajoutée.
Report an issue
<< setdiff Ensembles unique >>

Copyright (c) 2022-2025 (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:
Thu Oct 16 09:08:39 CEST 2025