我有一个数据文件m.txt ,看起来像这样(还有很多要点):
286.842995 3.444398 3.707202 338.227797 3.597597 283.740414 3.514729 3.512116 3.744235 3.365461 3.384880 其中一些值(例如338.227797 )与我通常期望的值(较小的数字)有
很大不同 。
- 因此,我认为我将删除3-sigma range之外的所有点。如何在MATLAB中做到这一点?
- 同样,更大的问题是此文件具有t.txt关联的单独文件t.txt ,该文件存储这些数字的相应时间值。因此,我还必须从t.txt文件中删除相应的时间值。
我仍在学习MATLAB,我知道会有一些很好的方法(比存储从m.txt删除的元素的m.txt ,然后再从t.txt文件中删除这些元素的t.txt )
回答:
@Amro很近,但是FIND是不必要的(查找逻辑下标),您需要包括真实+/- 3 sigma范围的平均值。我会选择以下内容:
%# load files m = load('m.txt'); t = load('t.txt'); %# find values within range z = 3; meanM = mean(m); sigmaM = std(m); I = abs(m - meanM)