How do I get rid of certain values with the same X-axis value in a certain range?
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Michael Arvin
le 23 Fév 2022
Modifié(e) : David Goodmanson
le 23 Fév 2022
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!
0 commentaires
Réponse acceptée
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.
0 commentaires
Plus de réponses (1)
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
0 commentaires
Voir également
Catégories
En savoir plus sur Logical 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!