Recoding unique numbers to another number

1 Ansicht (letzte 30 Tage)
Cside
Cside am 28 Dez. 2020
Beantwortet: Walter Roberson am 28 Dez. 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!

Akzeptierte Antwort

Stephen23
Stephen23 am 28 Dez. 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

Weitere Antworten (2)

KALYAN ACHARJYA
KALYAN ACHARJYA am 28 Dez. 2020
Bearbeitet: KALYAN ACHARJYA am 28 Dez. 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 am 28 Dez. 2020
findgroups(data)

Kategorien

Mehr zu Multidimensional Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by