2
我有一個6231x16825矩陣H
和16825x1列向量W
。乘以相應行中矩陣的各列中的矢量
例如,如果W = [2; 3; 3 ...]'
和H = [1 2 3; 4 5 6 ...]
,我需要獲得:
prod = [1*2 2*3 3*3; 4*2 5*3 6*3]
如何做到這一點?由於
我有一個6231x16825矩陣H
和16825x1列向量W
。乘以相應行中矩陣的各列中的矢量
例如,如果W = [2; 3; 3 ...]'
和H = [1 2 3; 4 5 6 ...]
,我需要獲得:
prod = [1*2 2*3 3*3; 4*2 5*3 6*3]
如何做到這一點?由於
方法有很多種可能,選擇適合你的人:
使用bsxfun
:
res = bsxfun(@times, H, W(:).');
矩陣乘法:
res = diag(W) * H;
一個循環:
res = nan(size(H));
for k = 1:size(H,2)
res(:, k)= W .* H(:, k);
end
+1:我覺得'bsxfun'是這種情況下的最佳做法。 –
+1,但最好使用另一個名稱作爲結果('prod'是一個內置函數) – Amro
@EitanT,並認爲你關閉了我的'bsxfun'有趣的問題......沒有任何難過的感覺; - ) – Shai