Recoding unique numbers to another number

3 vues (au cours des 30 derniers jours)
Cside
Cside le 28 Déc 2020
Hi I have this array of numbers [5 5 6 6 6 11 11 ]and would like to convert every unique number from 1 to n. For example, if there are 10 unique numbers, I would like to relabel them from 1 to 10, with the same number coded the same for eg [1 1 2 2 2 3 3]
The actual array is attached here. How may I code for this? Thanks so much!

Réponse acceptée

Stephen23
Stephen23 le 28 Déc 2020
The simple and efficient MATLAB solution:
X = [5,5,6,6,6,11,11];
[~,~,Z] = unique(X,'stable')
Z = 7×1
1 1 2 2 2 3 3

Plus de réponses (2)

KALYAN ACHARJYA
KALYAN ACHARJYA le 28 Déc 2020
Modifié(e) : KALYAN ACHARJYA le 28 Déc 2020
data=[5 5 6 6 6 11 11];
counts=histc(data,unique(data));
data_result=repelem(1:length(unique(data)),counts)
Results:
data_result =
1 1 2 2 2 3 3

Walter Roberson
Walter Roberson le 28 Déc 2020
findgroups(data)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by