Effacer les filtres
Effacer les filtres

How do I get rid of certain values with the same X-axis value in a certain range?

7 vues (au cours des 30 derniers jours)
Hello. I am trying to ignore/delete certain points in my data/plot. The x-axis is the time and the y-axis is the value. The time and value are both in 2 different matrices. The size of each is 8192.
If I zoom in, it looks like this.
I am trying to get rid of the value at a certain time that are more than the median within a certain range (for example +/-10).
Any ideas on how to do it?
Thank you very much!

Réponse acceptée

David Goodmanson
David Goodmanson le 23 Fév 2022
Modifié(e) : David Goodmanson le 23 Fév 2022
Hi Michael,
here is one way, assuming that x (many values of which are repeated) and y are two columns.
tol = 10;
a = polyfit(x,y,1);
y1 = polyval(a,x);
ind = abs(y1-y) > tol;
x(ind) = [];
y(ind) = [];
The data appears to be very linear, so the code fits a straight line and kills off the points that are too far away from the line. This is not quite the same as a) finding the mean value of y for each group with the same x and b) killing off the points that deviate too much from each mean, but the results must be really similar.

Plus de réponses (1)

KSSV
KSSV le 23 Fév 2022
Put a logical conditioning, get indices and remove those points. Simple.
Example:
y = rand(1,10) ; % random data for demo
idx = y > 0.5 ; % get indices of values greater than 0.5
y(idx)= []; % remove them from y

Catégories

En savoir plus sur Descriptive Statistics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by