[英]MATLAB: Multiply each column in Matrix A by a row in Matrix B
Matrix A: 10 rows, 50 columns 矩阵A:10行50列
a1 a2 a3 ....
a1 a2 a3 ....
b1 b2 b3 ....
b1 b2 b3 ....
c1 c2 c3 .... ...
c1 c2 c3 .... ...
Matrix B: 50 rows, 10 columns 矩阵B:50行10列
x1 x2 x3....
x1 x2 x3 ....
y1 y2 y3....
y1 y2 y3 ....
....
....
I would like to multiply data in each rows in Matrix A by columns(1) in Matrix B, the results will look like: 我想将矩阵A中每一行的数据乘以矩阵B中的column(1),结果将如下所示:
[ x1 *a1, x2 *b1, x3 *c1, x4 *d1....
[ x1 * a1, x2 * b1, x3 * c1, x4 * d1 ....
x1 *a2, x2 *b2, x3 *c2, x4 *d2....
x1 * a2, x2 * b2, x3 * c2, x4 * d2 ....
x1*.
x1 *。
....]
....]
Then, multiply each rows of Matrix A by columns(2) in Matrix 8: 然后,将矩阵A的每一行乘以矩阵8中的column(2):
[ y1 *a1, y2 *b1, y3 *c1, y4 *d1....
[ y1 * a1, y2 * b1, y3 * c1, y4 * d1 ....
y1 *a2, y2 *b2, y3 *c2, y4 *d2....
y1 * a2, y2 * b2, y3 * c2, y4 * d2 ....
y1* .
y1 * 。 ....]
....]
Then, by row(3) till columns(50) 然后,按第(3)行直到第(50)列
I am looking for a script : ) 我正在寻找一个脚本:)
You can use bsxfun
. 您可以使用
bsxfun
。
A=rand(10,50);
B=rand(50,10);
C=bsxfun(@times,A,permute(B,[3 1 2]));
Here C(:,:,1)
would be your first result matrix, and C(:,:,2)
the second... 这里
C(:,:,1)
是您的第一个结果矩阵,而C(:,:,2)
是第二个结果矩阵。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.