Excluding some elements from a Vector

qw=[1:0.4:50]';
c=[9,17,25, 31,43]'
I wish to exclude all the elements that are c-0.5 to c+0.5

 Accepted Answer

qw = 1:0.4:50;
c = [9;17;25;1;43];
tol = .5;
(a) Bsxfun solution
Out = qw(~any(bsxfun(@ge, qw, c-tol) & bsxfun(@le, qw, c+tol)));
(B) Arrayfun solution
Out = qw(~arrayfun(@(x) any(x >= c-tol & x <= c+tol),qw))

3 Comments

I wish to exclude all the points that are (c to c+0.5) and from (c-0.5 to c). For example all points from 8.5- 9.5 and so on...
So, did you try the code? Now, (b) solution also is consistent with (a)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!