I have a matrix mat and a vector v. I would like to multiply first column of matrix matby first element of vector v and m
sweep seems to run a bit faster on my machine
sweep(mat, 2, v, FUN = "*")
Some benchmarks:
> microbenchmark(mat %*% diag(v),sweep(mat, 2, v, FUN = "*"))
Unit: milliseconds
expr min lq median uq max neval
%*% 214.66700 226.95551 231.2366 255.78493 349.1911 100
sweep 42.42987 44.72254 62.9990 70.87403 127.2869 100