我有一个2D矩阵A
,每行代表一个信号样本,
我想通过删除 mean 多于或小于阈值的样本来过滤它。
所以我计算出像m = mean(A');
然后我想做一些像
这样的事情A(m > 2 || m < 1 , :) = [];
哪个面临错误,
我尝试过这样做,
A(m > 2 , :) = [];
A(m < 1 , :) = [];
但我意识到在执行第一行后,索引会发生变化......
那我该怎么办?
答案 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),:) = [];
我不知道它是否足够有效,但它完成了这项工作。