Matlab:将阈值应用于矩阵中的一维

时间:2012-01-20 04:01:05

标签: matlab

我有一个矩阵M(x,y)。我想在x中的所有值中应用阈值,如果x

示例:

M = 1,2;    3,4;    5,6;

如果在第一维上应用t = 5,则结果为

R = 0,2;    0,4;    5,6;

2 个答案:

答案 0 :(得分:5)

一种方法(使用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;

答案 1 :(得分:1)

在任意尺寸的矩阵中进行:

thresh_min = 5;
M(M < thresh_min) = 0;

语句M < thresh_min返回小于thresh_min的M索引。然后,使用这些索引重新索引到M,您可以将所有这些符合所需条件的valuse设置为0(或其他任何内容)。