我有一个2D矩阵,A
,每一行代表信号的一个样本,卸下基质的某些指标的MATLAB
我想通过除去具有所述样本以过滤它意味着大于阈多和少。
所以我计算平均值像m = mean(A');
然后我要像做
A(m > 2 || m < 1 , :) = [];
与错误面孔,
我试图做类似,
A(m > 2 , :) = [];
A(m < 1 , :) = [];
但是我意识到在执行第一行之后,索引会改变d ...
那我该怎么办?
我有一个2D矩阵,A
,每一行代表信号的一个样本,卸下基质的某些指标的MATLAB
我想通过除去具有所述样本以过滤它意味着大于阈多和少。
所以我计算平均值像m = mean(A');
然后我要像做
A(m > 2 || m < 1 , :) = [];
与错误面孔,
我试图做类似,
A(m > 2 , :) = [];
A(m < 1 , :) = [];
但是我意识到在执行第一行之后,索引会改变d ...
那我该怎么办?
该评论建议您使用元素明智或代替标量。
此:
A(m > 2 | m < 1 , :) = [];
不是这个:
A(m > 2 || m < 1 , :) = [];
但是,与您的其他问题,我强烈建议使用尺寸参数的意思,而不是调换输入矩阵是指:
m = mean(A,2).'; % NOT m = mean(A');
我这样做:
A(m > 2,:) = NaN;
A(m < 1,:) = NaN;
A(any(isnan(A),2),:) = [];
我不知道这是否是足够的效率,但它做的工作。
你应该看看[这个问题](http://stackoverflow.com/questions/14183385/whats-the-differenc e-between-in-matlab)关于'|'和'||'_之间的区别。 (tl; dr:|可以对数组进行操作,但||只能对标量操作)。 附注:为了对抗'A(m> 2,:) = [];'之后的索引改变,您可以再次运行m = mean(A');'来重新计算索引。 – 2014-10-19 11:38:02
@ Dev-iL,关于再次使用“mean”的好处。 – Rashid 2014-10-19 15:04:08