Hello all, I have a vector X with numbers. These X vector numbers are numbers (indeces) for columns of another vector Y that are significant. Now I want to binarize my vector Y and set the values in Y that correspond with the indeces provided by vector X to 1s, and the rest of the vector Y to 0s.
example:
X = [1 2 5 9]; Y = [10 12 3 43 75 60 67 8 90]
result: Y = [1 1 0 0 1 0 0 0 1]
I tried to do it with ismember, but I do not think it will work for indexing - could you help? Thanks.

 Réponse acceptée

Jan
Jan le 20 Juil 2018
Modifié(e) : Jan le 20 Juil 2018

0 votes

The values of Y do not matter in any way, do they?
X = [1 2 5 9];
Y = [10 12 3 43 75 60 67 8 90];
Y(:) = 0; % Set all to 0
Y(X) = 1; % Set elements at position X to 1
Or if you really want ismember, but this is less efficient:
Y = ismember(1:numel(Y), X);

1 commentaire

sprklspring
sprklspring le 20 Juil 2018
Thanks Jan, exactly what I was looking for.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays 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