在MATLAB中删除矩阵的一些索引

时间:2014-10-19 06:36:32

标签: matlab matrix

我有一个2D矩阵A,每行代表一个信号样本,

我想通过删除 mean 多于或小于阈值的样本来过滤它。

所以我计算出像m = mean(A');

这样的平均值

然后我想做一些像

这样的事情
A(m > 2 || m < 1 , :) = [];

哪个面临错误,

我尝试过这样做,

A(m > 2 , :) = [];
A(m < 1 , :) = [];

但我意识到在执行第一行后,索引会发生变化......

那我该怎么办?

2 个答案:

答案 0 :(得分:1)

评论建议您使用元素或标量。

此:

A(m > 2 | m < 1 , :) = [];

不是这个:

A(m > 2 || m < 1 , :) = [];

但是,与您的其他问题一样,我强烈建议使用维度参数来表示而不是将输入矩阵转置为:

m = mean(A,2).'; % NOT m = mean(A');

答案 1 :(得分:0)

我这样做了:

 A(m > 2,:) = NaN;
 A(m < 1,:) = NaN;
 A(any(isnan(A),2),:) = [];

我不知道它是否足够有效,但它完成了这项工作。