Laz*_*zer 4 statistics matlab correlation
我有一个m.txt看起来像这样的数据文件(有更多的点):
286.842995
3.444398
3.707202
338.227797
3.597597
283.740414
3.514729
3.512116
3.744235
3.365461
3.384880
Run Code Online (Sandbox Code Playgroud)
一些值(例如338.227797)与我通常期望的值(较小的数字)非常不同.
所以,我在想我将删除所有不在其中的点3-sigma range.我怎么能在MATLAB中做到这一点?
此外,更大的问题是该文件有一个t.txt与之关联的单独文件,它存储这些数字的相应时间值.所以,我还必须从t.txt文件中删除相应的时间值.
我还在学习MATLAB,我知道有一些好方法可以做到这一点(比存储m.txt从t.txt文件中删除的元素的索引更好,然后从文件中删除这些元素)
@Amro很接近,但FIND是不必要的(查找逻辑下标),你需要包含真正的+/- 3西格玛范围的均值.我会选择以下内容:
%# 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) <= z * sigmaM;
%# keep values within range
m = m(I);
t = t(I);
Run Code Online (Sandbox Code Playgroud)