【发布时间】:2018-12-21 10:33:50
【问题描述】:
我有一个 NxNx4 矩阵 (A) 和一个 4x4 矩阵 (B)。我需要将第一个矩阵A的四个元素组成的向量a相乘,比方说
a = A(1,1,1)
A(1,1,2)
A(1,1,3)
A(1,1,4)
通过 4x4 矩阵B,但我不确定是否有比使用for 循环构建向量a 更快更聪明的解决方案。有没有一种方法可以用几行代码来完成这个计算?
我建立了A 喜欢
A(:,:,1) = rand(20);
A(:,:,2) = rand(20);
A(:,:,3) = rand(20);
A(:,:,4) = rand(20);
还有矩阵B
B = rand(4);
现在我想将B 与
B*[A(1,1,1);A(1,1,2);A(1,1,3);A(1,1,4)]
这个,对于A的每个元素
B*[A(1,2,1);A(1,2,2);A(1,2,3);A(1,2,4)]
B*[A(1,3,1);A(1,3,2);A(1,3,3);A(1,3,4)]
...
【问题讨论】:
-
您描述有一个
N*N*4矩阵和一个4*4矩阵,而您的示例a两者都不是!请显示您预期的输入/输出的minimal reproducible example,如果定义明确,这听起来相对容易,但目前还不清楚。 -
现在怎么样了?
-
这更清楚了,我唯一的另一个问题是您的预期输出是什么?每次乘法都会产生一个
4*1向量,我猜你的预期输出C是一个与A大小相同的矩阵? -
没错。
C应该又是一个 NxNx4 矩阵。我选择多维矩阵而不是 4 个单独的矩阵来计算经典的乘法矩阵向量B*a