Подтвердить что ты не робот

Элементное умножение матрицы и вектора?

Есть ли встроенная функция в октаве, чтобы умножить каждый столбец элемента m X n на элемент с размером столбца размером m, который более эффективен, чем использование цикла?

4b9b3361

Ответ 1

Вы можете реплицировать вектор столько раз, сколько вам нужно, чтобы превратить его в матрицу m x n, а затем использовать встроенный элементный оператор умножения .*:

>> A = [1 2; 3 4; 5 6];
>> B = [1; 2; 3];

>> A .* repmat(B, 1, columns(A))
ans = 

    1    2
    6    8
   15   18

Ответ 2

Я не пробовал ответить Анне Лир, но, как сказал в этом ответе благородный голос, Октав сейчас транслирует. Так что вам просто нужно сделать A. * B. Вы получите предупреждение, которое скажет, что применяется автоматическое вещание продукта.

>> A.*B
warning: product: automatic broadcasting operation applied
ans =

 1    2
 6    8
15   18