MEX function to multiply a vector with a matrix without repmat Much faster than using repmat and no need to memory allocation --- Usage z = vb_repmultiply(x,y) x : M x N z : M x N case y : 1 x N z = x .* repmat(y, [M 1]) = x * diag(y) z(m,n) = x(m,n) * y(n) case y : M x 1 z = x .* repmat(y, [1 N]) = diag(y) * x z(m,n) = x(m,n) * y(m) case y : 1 x 1 z = x * y z(m,n) = x(m,n) * y Copyright (C) 2011, ATR All Rights Reserved. License : New BSD License(see VBMEG_LICENSE.txt)
0001 function z = vb_repmultiply(x,y) 0002 % MEX function to multiply a vector with a matrix without repmat 0003 % Much faster than using repmat and no need to memory allocation 0004 % --- Usage 0005 % z = vb_repmultiply(x,y) 0006 % x : M x N 0007 % z : M x N 0008 % 0009 % case y : 1 x N 0010 % z = x .* repmat(y, [M 1]) 0011 % = x * diag(y) 0012 % z(m,n) = x(m,n) * y(n) 0013 % 0014 % case y : M x 1 0015 % z = x .* repmat(y, [1 N]) 0016 % = diag(y) * x 0017 % z(m,n) = x(m,n) * y(m) 0018 % 0019 % case y : 1 x 1 0020 % z = x * y 0021 % z(m,n) = x(m,n) * y 0022 % 0023 % Copyright (C) 2011, ATR All Rights Reserved. 0024 % License : New BSD License(see VBMEG_LICENSE.txt)