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

2 vues (au cours des 30 derniers jours)
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
Guillaume
Guillaume le 28 Mar 2018
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 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