How do I get rid of certain values with the same X-axis value in a certain range?
    8 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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 件のコメント
採用された回答
  David Goodmanson
      
      
 2022 年 2 月 23 日
        
      編集済み: David Goodmanson
      
      
 2022 年 2 月 23 日
  
      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 件のコメント
その他の回答 (1 件)
  KSSV
      
      
 2022 年 2 月 23 日
        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 件のコメント
参考
カテゴリ
				Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


