在matlab中过滤和乘以滤波矩阵

时间:2015-05-27 07:26:49

标签: matlab matrix filter multiplication

我想根据指定的标准过滤我的矩阵,然后对滤波后的矩阵进行乘法,然后将乘法滤波后的矩阵与矩阵的余数部分相连接。例如。矩阵a如下:

 a =
 1     2     3     4
 4     5     6     2

然后,我将基于第二行对其进行过滤以对它们进行乘法:选择具有值< = 4的列项以乘以exp(-0.5)。然后我想通过分配给过滤列的新行获得总的初始矩阵。即所需的输出是:

a =
 1     2     3     4
 2.4261     5     6     1.2131

为此,我尝试b= a(2,:)<=4使用过滤后的矩阵并使用bsxfun(@times,a(2,b),exp(-0.5))进行乘法,那么我是否应该为剩余的未过滤列添加另一个矩阵c= a(2,:)>4然后加入它们?任何有关更好实施的帮助都表示赞赏。

1 个答案:

答案 0 :(得分:1)

试试这个:

%// you have done this
mask = a(2,:)<=4;

%// taking 2nd row and masked cols and doing operations on those elements alone
a(2,mask) = a(2,mask).*exp(-0.5);

<强>结果:

<强>输入:

a =

 1     2     3     4
 4     5     6     2

<强>输出:

>> a

a =

1.0000    2.0000    3.0000    4.0000
2.4261    5.0000    6.0000    1.2131