如何在Matlab中将两个3D矩阵的2D切片相互相乘

时间:2015-05-20 16:48:08

标签: matlab matrix

我有两个3D矩阵 A(kl,1,r) B(1,rs,r)。的 KL = RS 即可。 我需要得到一个新矩阵 C(kl,rs,r),它应该具有 A(kl,1)列向量的乘积<每个页面的强> B(1,rs) r 没有for循环

var marklogic = require('marklogic');
var db = marklogic.createDatabaseClient({ ...

任何人都可以帮忙吗? :)

1 个答案:

答案 0 :(得分:1)

使用bsxfun,您可以直接在一行

中执行此操作
out = bsxfun(@times, A, B);

示例输入:

>> A

A(:,:,1) =

 6
10
 3

A(:,:,2) =

 2
 2
 1

>> B

B(:,:,1) =

 5     5     4

B(:,:,2) =

 8     7     8

<强>结果:

out(:,:,1) =

30    30    24
50    50    40
15    15    12


out(:,:,2) =

16    14    16
16    14    16
 8     7     8