MATLAB Operation question.

2 Ansichten (letzte 30 Tage)
Kyle
Kyle am 7 Jun. 2011
HI,
I have an array:
angle =
Columns 1 through 5
174.8310 -4.9214 -5.0368 -5.0544 -4.2956
Columns 6 through 9
-2.9111 -5.0442 -5.7359 -5.0155
I would like to filter off the number that has less occurrence( Eg. 174.831 , -2.9111) while keeping those value that repeats.
Is there any matlab function that can do that?
Thanks

Akzeptierte Antwort

the cyclist
the cyclist am 7 Jun. 2011
% Identify the elements that are too high or too low
isTooHi = (angle>-4.5);
isTooLo = (angle<-5.5);
% Remove them
angle(isTooHi|isTooLo) = [];
  1 Kommentar
Kyle
Kyle am 8 Jun. 2011
Thanks a lot.
you given me an idea. I slightly modify ur code to suite my use.
angle=[-2.9111 -5.0442 -5.7359 -5.0155 174.8310 -4.9214 -5.0368 -5.0544 -4.2956];
b=round(angle);
c=mode(b);
isTooHi = (angle>(c+1));
isTooLo = (angle<(c-1));
angle(isTooHi|isTooLo) = []

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

John D'Errico
John D'Errico am 7 Jun. 2011
NONE of these numbers are repeated in your example! Unless you define what numbers are desirable, MATLAB cannot know that one number is better than another when all are distinct. MATLAB cannot read your mind.
My guess is you are looking for an outlier detection/removal scheme. If so, then you need to either define it in terms of the expected distribution of these numbers (i.e., a normal distribution) or do so using some non-parametric scheme.
  1 Kommentar
Kyle
Kyle am 7 Jun. 2011
Thanks for the reply.
Sorry i should be more specific. For my example i would like to keep all those value that are -5 +/- 0.5 while eliminates others outside this range.
Other array would have maybe a lot value near 7 while a few value is far off(like 1, -20,...)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by