gpt4 book ai didi

matlab - 列向量乘法的 3d 矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:52 24 4
gpt4 key购买 nike

我有一个 3d(或一般来说是 n 维)矩阵 A,其维度为

size(A) = [d1 d2 d3 ... dn]. 

现在我想用一个维度上的列向量 v 进行向量乘法(就像我在二维中做的那样,我得到一个返回的向量 - 例如 d1 = 2, d3 = 4size(v) = d2), 所以

(A*d)_i = sum(a_ij*v_j). 

因此我想减少一维。

是否有一个 Matlab 函数(循环除外)返回 d3 维列向量 v

(A*v)_ij = sum(A_ijk*v_k). 

我希望这是清楚的。

谢谢!

最佳答案

你可以用一些 reshape 来做到这一点:

A=rand(2,3,4);
v=rand(1,4);
reshape(reshape(A,[size(A,1)*size(A,2),size(A,3)])*v,[size(A,1) size(A,2)])

基本上,您将 A reshape 为二维矩阵 A2((ij),(k))=A((i),(j),(k)):

A2=reshape(A,[size(A,1)*size(A,2),size(A,3)])

然后你做通常的乘法:

对于所有 (ij) B2((ij))=sum_k A2((ij),(k))*v((k)):

B2=A2*v

你 reshape 背部:

B((i),(j))=B((ij))

B=reshape(B2,[size(A,1) size(A,2)])

我希望这是清楚的

关于matlab - 列向量乘法的 3d 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999524/

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