How do convert array x to array z?

Hi, How do convert array x to array z ?
x = [4 4 8 8 8 5 5 4 8 8 4]
Z = [1 1 2 2 2 3 3 1 2 2 1]
4 -> 1
8 -> 2
5 -> 3

 Accepted Answer

Stephen23
Stephen23 on 28 Aug 2018
Edited: Stephen23 on 28 Aug 2018
If you want to convert the first value, whatever it may be, to 1, the second to 2, etc:
>> x = [4 4 8 8 8 5 5 4 8 8 4];
>> [~,ia,ic] = unique(x,'first');
>> [~,ia] = sort(ia);
>> z = ia(ic)
z =
1 1 2 2 2 3 3 1 2 2 1

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 28 Aug 2018
Edited: Andrei Bobrov on 28 Aug 2018
or just:
[~,~,z] = unique(x,'stable');
or more
[~,z] = ismember(x,[4 8 5]);

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!