unique
удалить все повторяющиеся компоненты из вектора или матрицы
Синтаксис
N = unique(M) N = unique(M, orient) [N, k] = unique(..)
Аргументы
- M
вектор или матрица чисел или строк
- orient
флаг с возможными значениями: 1 или "r", 2 или "c". Не может использоваться, если
M
является гиперматрицей.- N
- Если
orient
не используется: вектор извлечённыхM
компонентов, сортированных в полядке возрастания. - Если
orient
используется: матрица извлечённыхM
строк или столбцов, сортированных в лексикографическом порядке возрастания.
- Если
- k
Вектор индексов первых встреченных значений, таких что
N(i) = M(k(i))
илиN(i,:) = M(k(i),:)
илиN(:,i) = M(:,k(i))
.
Описание
unique(M)
возвращает вектор, который содержит уникальные элементы
M
в порядке возрастания.
unique(M,"r")
или unique(M,1)
возвращает
уникальные строки M
в лексикографическом порядке возрастания.
unique(M,"c")
или unique(M,2)
возвращает
уникальные столбцы M
в лексикографическом порядке возрастания.
![]() | Извлечённые компоненты, строки или столбцы могут быть пересортированны в их исходном порядке через
сортировку с помощью k . См. первый пример. |
Примеры
With some numbers:
M = int8([2 0 2 2 1 1 1 2 1 1 0 1 1 0 1 1 0 1 2 0 1 2 2 0 1 1 2 0 1 0 0 0 ]) [u, k] = unique(M) [uc, kc] = unique(M, "c") // Получим недублированные столбцы в исходном порядке: M(:, gsort(kc,"g","i"))
--> M M = 2 0 2 2 1 1 1 2 1 1 0 1 1 0 1 1 0 1 2 0 1 2 2 0 1 1 2 0 1 0 0 0 --> [u, k] = unique(M) u = 0 1 2 k = 2. 4. 1. --> [uc, kc] = unique(M, "c") uc = 0 0 0 1 1 1 2 2 0 1 2 0 1 2 0 2 kc = 14. 2. 11. 12. 5. 6. 1. 3. --> // Получим недублированные столбцы в исходном порядке: --> M(:, gsort(kc,"g","i")) ans = 2 0 2 1 1 0 1 0 0 1 2 1 2 2 0 0
С комплексными числами:
i = %i; c = [1+i, 1-i, -i, i, -i, 1+i] [u, k] = unique(c) [uc, kc] = unique(c, "c")
--> c = [1+i, 1-i, -i, i, -i, 1+i] c = 1. + i 1. - i -i i -i 1. + i --> [u, k] = unique(c) u = -i i 1. - i 1. + i k = 3. 4. 2. 1.
С текстом:
t = ["AB" "BA" "BA" "BA" "AB" "BA" "AB" "AB" "BB" "AA" "AB" "BA" "BA" "BA" "AA" "AA" "AA" "AB" "AA" "BB" "BB" "BB" "BA" "AB" "AB" "BB" "BB" "AB" "AB" "AA" ] [u, k] = unique(t) [uc, kc] = unique(t, "c")
t = !AB BA BA BA AB BA AB AB BB AA AB BA BA BA AA ! !AA AA AB AA BB BB BB BA AB AB BB BB AB AB AA ! --> [u, k] = unique(t); u = !AA ! !AB ! !BA ! !BB ! k = 2. 1. 3. 10. --> [uc, kc] = unique(t, "c") uc = !AA AA AB AB AB BA BA BA BB ! !AA AB AA BA BB AA AB BB AB ! kc = 15. 10. 1. 8. 5. 2. 3. 6. 9.
Смотрите также
- members — count (and locate) in an array each element or row or column of another array
- gsort — сортировка по алгоритму быстрой сортировки
- vectorfind — ищет в строках или столбцах матриц совпадения с вектором
- grep — поиск соответствий строки в векторе строк
- union — выделяет объединение компонентов векторов
- intersect — returns the unduplicated elements or rows or columns met in both input arrays
История
Версия | Описание |
6.0.2 | unique() теперь может использоваться для удаления дубликатов комплексных чисел. |
Comments
Add a comment:
Please login to comment this page.