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

时间:2012-02-16 18:31:26

标签: 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)

我正在寻找一个脚本:)

1 个答案:

答案 0 :(得分:5)

您可以使用bsxfun

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

此处C(:,:,1)是您的第一个结果矩阵,C(:,:,2)是第二个...