当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – 如何快速进行多维矩阵向量乘法?

来源:互联网 收集:自由互联 发布时间:2021-06-22
A是3D N * N * L矩阵,x是N * 1向量,我需要在其上执行以下操作: for i=1:L res(i)=x'*squeeze(A(:,:,i))*xend 我希望使用最有效的矢量化方法而不是for循环.请有人给我一些建议吗? 随着 bsxfun – sum(r
A是3D N * N * L矩阵,x是N * 1向量,我需要在其上执行以下操作:

for i=1:L
    res(i)=x'*squeeze(A(:,:,i))*x
end

我希望使用最有效的矢量化方法而不是for循环.请有人给我一些建议吗?

随着 bsxfun

sum(reshape(bsxfun(@times,x,bsxfun(@times,A,x.')),[],L),1)

随着matrix-multiplication-fun

reshape(x*x.',1,[])*reshape(A,[],L)
网友评论