ismember in a different way

1 view (last 30 days)
sprklspring
sprklspring on 20 Jul 2018
Commented: sprklspring on 20 Jul 2018
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.

Accepted Answer

Jan
Jan on 20 Jul 2018
Edited: Jan on 20 Jul 2018
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 Comment
sprklspring
sprklspring on 20 Jul 2018
Thanks Jan, exactly what I was looking for.

Sign in to comment.

More Answers (0)

Categories

Find more on Matrices and 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!