我正在优化一个函数,我想摆脱缓慢的for循环.我正在寻找一种更快的方法来将矩阵的每一行乘以一个向量.
有任何想法吗?
编辑:
我不是在寻找'经典'乘法.
例如.我有一个有23列和25行的矩阵和一个长度为23的向量.结果我想要矩阵25x23,每行乘以向量.
我有一个矩阵mat和一个向量v.我想将第一列矩阵乘以mat向量的第一个元素,v并将第二列矩阵乘以向量的第二mat个元素v.我可以如图所示做到这一点.如果我们得到一个大矩阵,我怎样才能在R中更快地做到这一点?
mat = matrix(rnorm(1500000), ncol= 100)
v= rnorm(100)
> system.time( mat %*% diag(v))
user system elapsed
0.02 0.00 0.02
Run Code Online (Sandbox Code Playgroud)