Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
unique
удалить все повторяющиеся компоненты из вектора или матрицы
Синтаксис
[N, km, kn, nb] = unique(M) [N, km, kn, nb] = unique(M, orient) [N, km, kn, nb] = unique(.., "keepOrder") [N, km, kn, nb] = unique(.., "uniqueNan")
Аргументы
- M
вектор или матрица чисел или строк
- orient
флаг с возможными значениями: 1 или "r", 2 или "c". Не может использоваться, если
Mявляется гиперматрицей.- N
Если
orientне используется: вектор извлечённыхMкомпонентов, сортированных в полядке возрастания. ЕслиMявляется вектором-строкой, тоNтак же является вектором-строкой. В случаях всех иныхMNявляется матрицей или вектором-столбцом.- Если
orientиспользуется: матрица извлечённыхMстрок или столбцов, сортированных в лексикографическом порядке возрастания.
- k
Вектор индексов первых встреченных значений, таких что
N(i) = M(k(i))илиN(i,:) = M(k(i),:)илиN(:,i) = M(:,k(i)).kявляется строкой, еслиMявляется строкой или если используетсяorient="c". В проитвном случае это столбец.- kn
- Not yet implemented.
Vector of indices of first encountered occurrences, such that
M(i) = N(kn(i))orM(i,:) = N(kn(i),:)orM(:,i) = N(:,kn(i)). - nb
Вектор целых чисел > 0 той же формы, что и
k: количество случаевMсоответствующих непродублированных элементов (компоентов, строк, столбцов) возвращаемых вN.
Описание
unique(M) возвращает вектор, который содержит уникальные элементы
M в порядке возрастания.
unique(M,"r") или unique(M,1) возвращает
уникальные строки M в лексикографическом порядке возрастания.
unique(M,"c") или unique(M,2) возвращает
уникальные столбцы M в лексикографическом порядке возрастания.
unique(M,.. "keepOrder") возвращает M недублированных
входов в их исходном порядке в M. "keepOrder" нечувствителен
к регистру.
unique(M,.. "uniqueNan") принимает все значения Nan одинаковыми и не дублирует их.
По умолчанию любой Nan отличается от другого Nan включая себя самого: %nan<>%nan
равен истине, пока не будет использоваться "uniqueNan". Определение
"uniqueNan" нечувствительно к регистру.
Примеры
С некотороми числами:
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, km] = unique(M) [uc, kmc] = unique(M, "c")
--> 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, km] = unique(M) u = 0 1 2 km = 2. 4. 1. --> [uc, kmc] = unique(M, "c") uc = 0 0 0 1 1 1 2 2 0 1 2 0 1 2 0 2 kmc = 14. 2. 11. 12. 5. 6. 1. 3.
С комплексными числами:
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 = ["BA" "BB" "AB" "BA" "AB" "BA" "AB" "AB" "BA" "AA" "AB" "BA" "BA" "BA" "AA" "AA" "AB" "AA" "AA" "BB" "BB" "BB" "BA" "AB" "AB" "BB" "BB" "AB" "AB" "AA" ] u = unique(t)' [u, kt, ku, nb] = unique(t(1,:)) [u, kt] = unique(t(1,:), "keepOrder") // сохранение исходного порядка элементов строки №1 [uc, ktc, kuc, nb] = unique(t, "c") [uc, ktc, kuc, nb] = unique(t, "c", "keepOrder") // сохранение исходного порядка столбцов
--> t = ["BA" "BB" "AB" "BA" "AB" "BA" "AB" "AB" "BA" "AA" "AB" "BA" "BA" "BA" "AA" > "AA" "AB" "AA" "AA" "BB" "BB" "BB" "BA" "AB" "AB" "BB" "BB" "AB" "AB" "AA" > ] t = !BA BB AB BA AB BA AB AB BA AA AB BA BA BA AA ! !AA AB AA AA BB BB BB BA AB AB BB BB AB AB AA ! --> u = unique(t)' u = !AA AB BA BB ! --> [u, kt, ku, nb] = unique(t(1,:)) u = !AA AB BA BB ! kt = 10. 3. 1. 2. nb = 2. 5. 7. 1. --> [u, kt] = unique(t(1,:), "keepOrder") // сохранение исходного порядка u = !BA BB AB AA ! kt = 1. 2. 3. 10. --> [uc, ktc, kuc, nb] = unique(t, "c") uc = !AA AA AB AB AB BA BA BA BB ! сортированные столбцы !AA AB AA BA BB AA AB BB AB ! ktc = 15. 10. 3. 8. 5. 1. 9. 6. 2. nb = 1. 1. 1. 1. 3. 2. 3. 2. 1. --> [uc, ktc, kuc, nb] = unique(t, "c", "keepOrder") // сохранение исходного порядка uc = !BA BB AB AB BA AB BA AA AA ! !AA AB AA BB BB BA AB AB AA ! ktc = 1. 2. 3. 5. 6. 8. 9. 10. 15. nb = 2. 1. 1. 3. 2. 1. 3. 1. 1.
Со значениями Nan (и Inf). Опция "uniqueNan":
M = [2 2 %nan 1 2 0 1 %nan 0 %nan 1 0 1 %nan 0 %inf 0 1 %inf 1 ]; [v, km, kv, n] = unique(M); v',n' [v, km, kv, n] = unique(M, "uniqueNan"); v',n' unique(M, "c") [v, kmc, kvc, n] = unique(M, "c", "uniqueNan")
--> M M = 2. 2. Nan 1. 2. 0. 1. Nan 0. Nan 1. 0. 1. Nan 0. Inf 0. 1. Inf 1. --> [v, km, kv, n] = unique(M); v',n' ans = 0. 1. 2. Inf Nan Nan Nan Nan ans = 5. 6. 3. 2. 1. 1. 1. 1. --> [v, km, kv, n] = unique(M, "uniqueNan"); v',n' ans = 0. 1. 2. Inf Nan ans = 5. 6. 3. 2. 4. --> unique(M, "c") ans = 0. 1. 1. 2. 2. Nan Nan Nan Inf 0. Nan 0. 1. 1. 1. 1. --> [v, kmc, kvc, n] = unique(M, "c", "uniqueNan") v = 0. 1. 1. 2. 2. Nan Inf 0. Nan 0. 1. 1. kmc = 6. 7. 4. 2. 1. 3. n = 2. 1. 1. 2. 1. 3.
Смотрите также
- members — count (and locate) in an array each element or row or column of another array
- gsort — sorting by quick sort algorithm
- vectorfind — ищет расположение вектора (отмеченный символом групповой подстановки) в матрице или гиперматрице
- grep — поиск соответствий строки в векторе строк
- union — выделяет объединение компонентов векторов
- intersect — returns the unduplicated elements or rows or columns met in both input arrays
История
| Version | Description |
| 6.0.2 | unique() теперь может использоваться для удаления дубликатов комплексных чисел. |
| 6.1.0 |
|
| Report an issue | ||
| << union | Операции с множествами | Тригонометрия >> |