【发布时间】:2019-02-20 09:45:12
【问题描述】:
我一直在使用以下自定义函数来执行向量与矩阵的乘法运算,其中向量的每个元素乘以 (3xN)x(3) 矩阵内的 3x3 块:
function [B] = BlockScalar(v,A)
N=size(v,2);
B=zeros(3*N,3);
for i=1:N
B(3*i-2:3*i,:) = v(i).*A(3*i-2:3*i,:);
end
end
类似地,当我想将 3x3 矩阵的集合乘以 3x3 向量的集合时,我使用以下代码
function [B] = BlockMatrix(A,u)
N=size(u,2);
B=zeros(N,3);
for i=1:N
B(i,:) = A(3*i-2:3*i,:)*u(:,i);
end
end
由于我经常调用它们,不幸的是,它们显着减慢了我的代码运行速度。我想知道上述操作是否有更高效(也许是矢量化)的版本。
【问题讨论】:
标签: matlab matrix linear-algebra