Есть ли встроенная функция в октаве, чтобы умножить каждый столбец элемента m X n
на элемент с размером столбца размером m
, который более эффективен, чем использование цикла?
Элементное умножение матрицы и вектора?
Ответ 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