Матрица A: 10 строк, 50 столбцов
a1 a2 a3 .... b1, b2, b3 .... c1 c2 c3 .... ...
a1 a2 a3 ....
b1, b2, b3 ....
c1 c2 c3 .... ...
Матрица B: 50 строк, 10 столбцов
x1 x2 x3 .... y1 y2 y3 .... ....
x1 x2 x3 ....
y1 y2 y3 ....
....
Я хотел бы умножить данные в каждой строке в матрице A на столбцы (1) в матрице B, результаты будут выглядеть следующим образом:
[ x1 * a1, x2 * b1, x3 * c1, x4 * d1 .... x1 * a2, x2 * b2, x3 * c2, x4 * d2 .... x1 *. ....]
[ x1 * a1, x2 * b1, x3 * c1, x4 * d1 ....
x1 * a2, x2 * b2, x3 * c2, x4 * d2 ....
x1 *.
....]
Затем умножьте все строки матрицы A на столбцы (2) в матрице 8:
[ y1 * a1, y2 * b1, y3 * c1, y4 * d1 .... y1 * a2, y2 * b2, y3 * c2, y4 * d2 .... y1 *. ....]
[ y1 * a1, y2 * b1, y3 * c1, y4 * d1 ....
y1 * a2, y2 * b2, y3 * c2, y4 * d2 ....
y1 *. ....]
Затем по строке (3) до столбцов (50)
Я ищу сценарий:)
Вы можете использовать bsxfun.
bsxfun
A=rand(10,50); B=rand(50,10); C=bsxfun(@times,A,permute(B,[3 1 2]));
Здесь C(:,:,1) будет вашей первой матрицей результатов, а C(:,:,2) второй ...
C(:,:,1)
C(:,:,2)