Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Fonctions Elémentaires > Ensembles > unique

unique

extrait (et trie) les éléments distincts d'un vecteur, matrice, hypermatrice

Séquence d'appel

N = unique(M)
N = unique(M, orient)
[N, k] = unique(..)

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 M est une hypermatrice.

N

  • Sans orient: vecteur d'éléments de M triés par ordre croissant.
  • Avec orient: Matrice de lignes ou colonnes extraites de M, triées par ordre lexicographique croissant.

k

Indices des éléments, lignes ou colonnes extraits, tels que N(i) = M(k(i)) ou N(i,:) = M(k(i),:) ou N(:,i) = M(:,k(i)).

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.

Les éléments, lignes ou colonnes extraits peuvent être remis dans leur ordre initial en triant k. Voir le 1er exemple.

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, k] = unique(M)
[uc, kc] = unique(M, "c")

// Obtenir les colonnes dédoublonnées dans leur ordre initial :
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.

--> // Obtenir les colonnes dédoublonnées dans leur ordre initial :
--> M(:, gsort(kc,"g","i"))
 ans  =
  2  0  2  1  1  0  1  0
  0  1  2  1  2  2  0  0

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 = ["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.

Voir aussi

  • members — dénombre (et localise) dans un tableau chaque élément ou ligne ou colonne d'un autre tableau
  • gsort — tri par l'algorithme "quick sort"
  • vectorfind — finds in a matrix rows or columns matching a vector
  • 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

VersionDescription
6.0.2 unique() peut maintenant être utilisée pour dédoublonner des nombres complexes.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 14:59:54 CET 2019