MATLAB Answers

Pankaj
0

Access elements of a Vector without a few Indices?

Asked by Pankaj
on 26 Apr 2015
Latest activity Commented on by Pankaj
on 26 Apr 2015
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.

  0 Comments

Sign in to comment.

1 Answer

Answer by Stephen Cobeldick on 26 Apr 2015
Edited by Stephen Cobeldick on 26 Apr 2015
 Accepted Answer

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

  1 Comment

Thanks Stephen

Sign in to comment.