Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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() теперь может использоваться для удаления дубликатов комплексных чисел. |
Report an issue | ||
<< union | Операции с множествами | Сигнальная обработка >> |