Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > Операции с множествами > union

union

Множество всех элементов, строк или столбцов двух массивов без дубликатов

Синтаксис

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

Аргументы

a, b
массивы логических значений, чисел или текста. Допускаются разрежённые логические или числовые матрицы. Типы a и b могут отличаться, но должны быть совместимыми для конкатенации.

orient
направление обработки:
  • 1 или "r": объединение выполняется по строкам;
  • 2 или "c": объеднение выполняется по столбцам.

v
вектор-строка или матрица. Тип данных v является типом результата [a(:) ; b(:)].

ka
вектор-строка целых чисел: индексы в a элементов/строк/столбцов v, пришедшие из a.

kb
вектор-строка целых чисел: индексы в b оставшихся элементов/строк/столбцов v, пришедших из b.

Описание

union(a,b) возвращает отсортированную вектор-строку, которая содержит уникальные элементы [a(:);b(:)].

union(a,b,"r") или union(a,b,1) возвращает матрицу, сформированную объединением уникальных строк a и b, отсортированную в лексикографическом порядке возрастания. В этом случае матрицы a и b должны иметь одинаковое количество столбцов.

union(a,b,"c") или union(a,b,2) возвращает матрицу, сформированную объединением уникальных столбцов a и b, отсортированную в лексикографическом порядке возрастания. В этом случае матрицы a и b должны иметь одинаковое количество строк.

[v,ka,kb]=union(a,b) также возвращает векторы индексов ka и kb такие, что v является сортированной комбинацией элементов a(ka) и b(kb).

Примеры

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.

Смотрите также

  • квадратные скобки — Конкатенация. Получатели присвоения. Результаты функции.
  • unique — удалить все повторяющиеся компоненты из вектора или матрицы

История

ВерсияОписание
6.1.0 Расширение до логических матриц.
6.1.1 Расширение до разреженных логических, разреженных вещественных и разреженных комплексных матриц.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:21:23 CEST 2021