查看单个帖子
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中有效查找相关性并丢弃3σ范围以外的点?

我有一个数据文件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)
poster 当前离线   回复时引用此帖