我想根据指定的标准过滤我的矩阵,然后对滤波后的矩阵进行乘法,然后将乘法滤波后的矩阵与矩阵的余数部分相连接。例如。矩阵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
然后加入它们?任何有关更好实施的帮助都表示赞赏。
答案 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