MATLAB: How to apply a weighting vector to a data matrix

multiply

I want to apply a weighting vector wgt which is nx1 to a data matrix M which is nxm. In other words, I want to multiply each i-th (i=1:n) element of the weighting vector by a each element in i-th row of the matrix. If a vector is wgt=[1 2 3]' and a matrix is M=[1 2; 1 2; 1 2] the weighted matrix should be Mwgt=[1 2; 2 4; 3 6]. M is 3×2, wgt is 3×1. Thank you for your help.

Best Answer

bsxfun(@times,M,wgt)