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
extrait (et trie) les éléments distincts d'un vecteur, matrice, hypermatrice
Séquence d'appel
[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")
Paramètres
- M
vecteur, matrice, ou hypermatrice de nombres ou de textes.
- orient
1 ou "r", 2 ou "c". Ne peut pas être utilisé si
Mest une hypermatrice.- N
Sans
orient: vecteur d'éléments deMtriés par ordre croissant. SiMest un vecteur ligne,Naussi. Dans tous les autres cas,Nest une matrice ou en colonne.- Avec
orient: Matrice de lignes ou de colonnes extraites deM, triées par ordre lexicographique croissant.
- km
Indices des éléments, lignes ou colonnes extraits, tels que
N(i) = M(km(i))ouN(i,:) = M(km(i),:)ouN(:,i) = M(:,km(i)).kmest un vecteur ligne siMl'est aussi ou siorient="c"est utilisé. Sinonkmest en colonne.- 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
Vecteur d'entiers > 0, au format de
km: nombres d'exemplaires dansMde chaque entité (élément, ligne, colonne) retournée dansN.
Description
unique(M) renvoie un vecteur contenant les
valeurs distinctes contenues dans les termes de M
classées par ordre croissant.
unique(M,"r") ou
unique(M,1)retourne les lignes uniques de
M triées dans l'ordre lexicographique croissant.
unique(M,"c") or
unique(M,2)retourne les colonnes uniques
M triées dans l'ordre lexicographique croissant.
unique(M,.. "keepOrder") donne le vecteur des valeurs distinctes
de M selon leur ordre initial d'apparition dans M
(au lieu d'être par défaut triées par ordre croissant). L'indicateur
"keepOrder" est insensible aux minuscules/majuscules.
unique(M,.. "uniqueNan") considère toute valeur Nan comme égale
à toute autre Nan, et les dédoublonne comme pour n'importe quelle autre valeur numérique.
Par défaut, toute valeur Nan est distincte de toute autre Nan, y compris elle-même :
%nan<>%nan est vrai, à moins d'utiliser
"uniqueNan". L'indicateur
"uniqueNan" est insensible aux minuscules/majuscules.
Exemples
Dédoublonnement de nombres :
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.
Dédoublonnement de nombres complexes :
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.
Dédoublonnement de textes :
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") // ordre initial conservé [uc, ktc, kuc, nb] = unique(t, "c") [uc, ktc, kuc, nb] = unique(t, "c", "keepOrder") // ordre initial des colonnes conservé
--> 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") // ordre initial conservé 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 ! colonnes triées !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") // ordre initial des colonnes conservé 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.
Avec des valeurs Nan (et Inf). Option "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.
Voir aussi
- members — dénombre (et localise) dans un tableau chaque élément ou ligne ou colonne d'un autre tableau
- gsort — sorting by quick sort algorithm
- vectorfind — locates occurences of a (wildcarded) vector in a matrix or hypermatrix
- grep — find matches of a string in a vector of strings
- union — extrait les composantes distinctes issues de l'union de deux vecteurs
- intersect — éléments, lignes, ou colonnes communs aux 2 tableaux d'entrée, sans doublon
Historique
| Version | Description |
| 6.0.2 | unique() peut maintenant être utilisée pour dédoublonner des nombres complexes. |
| 6.1.0 |
|
| Report an issue | ||
| << union | Ensembles | Trigonométrie >> |