Умножение каждой точки в матрице на одну из другой матрицы и формирование новой матрицы из каждого умножения в matlab - PullRequest
4 голосов
/ 28 декабря 2011

Извините, если вопрос, если сбивает с толку, но я поясню здесь.Я собираюсь сделать следующее: предположим, что у нас есть вектор (или матрица 1xN) A = [a1 a2 a3 a4] и еще один B = [b1 b2 b3] Я хочу, чтобы C было:

 [a1*b1  a1*b2  a1*b3
  a2*b1  a2*b2  a3*b3
  a3*b1  a3*b2  a3*b3
  a4*b1  a4*b2  a4*b3]

Есть ли команда, которая сделает это в Matlab?Я уже сделал это в цикле for, но, учитывая количество вызовов цикла, это сэкономит много времени, если мне удастся написать его без цикла for.

1 Ответ

3 голосов
/ 28 декабря 2011

Да.Это сделано с обычным векторным умножением и известно как external product .Все, что вам нужно сделать, это умножить вектор столбца на вектор строки, в данном случае A.' * B.Обратите внимание, что A транспонирован, чтобы сделать его вектором столбца (по определению ваш вектор является строкой).

...