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

 Akzeptierte Antwort

Oleg Komarov
Oleg Komarov am 22 Apr. 2011

0 Stimmen

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 Kommentare

Sindhu Kaimal
Sindhu Kaimal am 22 Apr. 2011
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...
Oleg Komarov
Oleg Komarov am 22 Apr. 2011
So, did you try the code? Now, (b) solution also is consistent with (a)
Sindhu Kaimal
Sindhu Kaimal am 22 Apr. 2011
Yes, thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by