function result = m_x_v(m,v) if !ismatrix(m) error("m_x_v: first arg must be a matrix"); endif if !isvector(v) error("m_x_v: second arg must be a vector"); endif [rm, cm] = size(m); [rv, cv] = size(v); if (rm == rv) v = kron(v, ones(1,cm)); result = m .* v; elseif (cm == cv) v = kron(v, ones(rm, 1)); result = m .* v; else error("m_x_v: dimension of vector must match one of the dimensions of the matr ix"); endif endfunction