我正在寻找一种方法来矢量化组合矩阵乘法和逐元素加法。
假设我有一个矩阵函数 M_{ij}(x) 和一个向量函数 v_j(x),其中 {i,j} 是矩阵索引,x 是位置变量。我想执行逐元素矩阵乘法并找到 u(x) = M(x).v(x)。一个简单的例子是:
imax = 2; jmax = 3; xmax = 10;
M=rand(imax,jmax,xmax);
v=rand(jmax,xmax);
u=zeros(imax,xmax);
for i=1:imax
for j=1:jmax
u(i,:) = u(i,:) + squeeze(M(i,j,:))'.*v(j,:);
end
end
有没有一种矢量化的方式来加速这个操作?在我的问题中,我们将假设 imax,jmax <5,并且 xmax 很大。