在matlab中过滤和乘以过滤矩阵
Filtering and multiplying filtered matrix in matlab
我想根据指定的条件过滤我的矩阵,然后对过滤后的矩阵进行乘法运算,然后将相乘后的过滤后矩阵与矩阵的剩余部分相结合。例如。我的矩阵 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
然后加入它们?对更好实施的任何帮助表示赞赏。
试试这个:
%// 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
我想根据指定的条件过滤我的矩阵,然后对过滤后的矩阵进行乘法运算,然后将相乘后的过滤后矩阵与矩阵的剩余部分相结合。例如。我的矩阵 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
然后加入它们?对更好实施的任何帮助表示赞赏。
试试这个:
%// 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