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

 Risposta accettata

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 Commenti

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)
Yes, thanks

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by