MATLAB:将矩阵A中的每一列乘以矩阵B中的一行

1 matlab

矩阵A:10行,50列

a1 a2 a3 ....

b1 b2 b3 ....

c1 c2 c3 ....

矩阵B:50行,10列

x1 x2 x3 ....

y1 y2 y3 ....

....

我想将矩阵A中每行中的数据乘以矩阵B中的列(1),结果如下所示:

[ x1*a1,x2*b1,x3*c1,x4*d1 ....

x1*a2,x2*b2,x3*c2,x4*d2 ....

X1*.

...]

然后,将矩阵A的每一行乘以矩阵8中的列(2):

[ y1*a1,y2*b1,y3*c1,y4*d1 ....

y1*a2,y2*b2,y3*c2,y4*d2 ....

y1*....]

然后,按行(3)直到列(50)

我正在寻找一个脚本:)

Oli*_*Oli 5

你可以用bsxfun.

A=rand(10,50);
B=rand(50,10);
C=bsxfun(@times,A,permute(B,[3 1 2]));
Run Code Online (Sandbox Code Playgroud)

C(:,:,1)将是你的第一个结果矩阵,C(:,:,2)第二个......