Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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 | Расширение до разреженных логических, разреженных вещественных и разреженных комплексных матриц. |
Report an issue | ||
<< setdiff | Операции с множествами | unique >> |