【问题标题】:Vectorizing combined matrix and element-wise multiplication in MATLAB在 MATLAB 中向量化组合矩阵和逐元素乘法
【发布时间】:2012-08-03 01:16:25
【问题描述】:

我正在寻找一种方法来矢量化组合的矩阵乘法和逐元素加法。

假设我有一个矩阵函数 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

【问题讨论】:

    标签: matlab


    【解决方案1】:

    试试

     u=squeeze(sum(bsxfun(@times,permute(M, [2 3 1]), v)))';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 2016-03-15
      • 2016-08-30
      • 1970-01-01
      • 2011-12-13
      相关资源
      最近更新 更多