Recoding unique numbers to another number

1 view (last 30 days)
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!

Accepted Answer

Stephen23
Stephen23 on 28 Dec 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

More Answers (2)

KALYAN ACHARJYA
KALYAN ACHARJYA on 28 Dec 2020
Edited: KALYAN ACHARJYA on 28 Dec 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 on 28 Dec 2020
findgroups(data)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!