Why can't you use the Matrix arrayTimes method? A vector is just a 1 x n-matrix (I think), so you can't initialize a second matrix with just one dimension and use arrayTimes?
Matrix a = new Matrix( [[1,2,3],[1,2,3],[1,2,3]] );
Matrix b = new Matrix( [[1,2,3]] );
Matrix c = a.arrayTimes(b.transpose);
, , doc.