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