Replace elements of array with elements of another array without for loop

A = [1 1 1 3 3 3 4 8 8 10 10 15 15]
B = unique(A)
B = [1 3 4 8 10 15]
I want the output to be [1 1 1 2 2 2 3 4 4 5 5 6 6]
I tried for loop :
for i=1:length(A)
A(A == B(i)) = i;
end
How can I do it without for loop?

 Réponse acceptée

Birdman
Birdman le 28 Mar 2018
Modifié(e) : Birdman le 28 Mar 2018
[B,ia,ic] = unique(A)
Third output argument ic will give you what you want.

1 commentaire

So really in this case, since the first two outputs are not needed:
[~, ~, B] = unique(A);

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur App Building dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by