Access elements of a Vector without a few Indices?

15 views (last 30 days)
Say suppose I have a vector
X = [4 5 1 7 3 9 2 4]
and I want to access X but without indices: 1, 4 and 6. I tried
X(~[1, 4, 6])
But that's not working. Any suggestions.
Thanks
PS: I don't want to modify the vector.

Accepted Answer

Stephen23
Stephen23 on 26 Apr 2015
Edited: Stephen23 on 26 Apr 2015
You could use setxor to generate the indices:
>> X = [4 5 1 7 3 9 2 4];
>> X(setxor(1:numel(X),[1,4,6]))
ans =
5 1 3 2 4
Or alternatively you could use create a logical array and use logical indexing. Even though it takes more lines it may be faster than the first solution:
>> Y = true(size(X));
>> Y([1,4,6]) = false;
>> X(Y)
ans =
5 1 3 2 4

More Answers (0)

Community Treasure Hunt

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

Start Hunting!