我有一个矩阵 M(x,y)。 我想在x的所有值上应用一个阈值,这样如果 x < t,则将其设为0。 否则,保留原始值。
例如: M = 1, 2; 3, 4; 5, 6;
如果在第一维上应用t = 5,则结果如下: R = 0, 2; 0, 4; 5, 6;
例如: M = 1, 2; 3, 4; 5, 6;
如果在第一维上应用t = 5,则结果如下: R = 0, 2; 0, 4; 5, 6;
一种方法(使用M(:,1)
选择第一列;M(:,1)<5
返回第一列中小于5的项目的行索引)-
> R = M;
> R(M(:,1)<5,1) = 0
R =
0 2
0 4
5 6
R = M;
[i,j]=find(M(:,1)<5); % locate rows (i) and cols (j) where M(:,1) < 5
% so j is just going to be all 1
% and i has corresponding rows
R(i,1)=0;
在任意维度的矩阵中执行此操作:
thresh_min = 5;
M(M < thresh_min) = 0;
M < thresh_min
这个语句返回小于thresh_min
的所有M的索引,然后可以使用这些索引重新索引到M
中,将符合您所需标准的所有值设置为0
(或其他您想要的值)。