gpt4 book ai didi

matlab - Matlab 中向量/数组乘法的快速方法

转载 作者:太空宇宙 更新时间:2023-11-03 20:11:34 26 4
gpt4 key购买 nike

我正在寻找一种快速灵活的方法来在 Matlab 中计算以下内容而不使用循环:

c = 1:5;
A = reshape(1:5^3,5,5,5);
res= c(1)*A(:,:,1)+...+c(5)*A(:,:,5)

我认为,与

sum(A,3) 

只要我能够沿三维执行乘法,这可能是一个不错的方法。一种解决方案(但有循环)是:

val = zeros(length(c),length(c))
for i = 1:length(c)
val = val+c(i)*A(:,:,i)
end

我只是想知道是否可以通过一种更简单(更优雅)的方式来避免循环。

最佳答案

您可以将 A3D reshape 为 2D,使用 very efficient matrix-multiplication ,这将为您提供一个 1D 数组,最后重新整形为 2D 以获得最终输出,就像这样 -

res = reshape(reshape(A,[],size(A,3))*c(:),size(A,1),[])

关于matlab - Matlab 中向量/数组乘法的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36738234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com