MATLAB: Умножить каждый столбец в матрице A на строку в матрице B - PullRequest
1 голос
/ 16 февраля 2012

Матрица A: 10 строк, 50 столбцов

a1 a2 a3 ....

b1, b2, b3 ....

c1 c2 c3 .... ...

Матрица B: 50 строк, 10 столбцов

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 *.

....]

Затем умножьте все строки матрицы A на столбцы (2) в матрице 8:

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

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

y1 *. ....]

Затем по строке (3) до столбцов (50)

Я ищу сценарий:)

1 Ответ

5 голосов
/ 16 февраля 2012

Вы можете использовать bsxfun.

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

Здесь C(:,:,1) будет вашей первой матрицей результатов, а C(:,:,2) второй ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...