矩阵的行乘积和矩阵的列和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了矩阵的行乘积和矩阵的列和相关的知识,希望对你有一定的参考价值。
我有一个大小为TxR的矩阵,我正在寻找一个命令来做行的产品(返回产品的1 x R向量)。之后我想总结一下列,即总结R项。
在Matlab中,这将完成类似于这个总和(prod(A,1),2),但我不知道R中的代码。
我希望它有意义。
谢谢
答案
sum(apply(A, 1, prod))
在行之间应用prod函数(1是边距),对结果求和。
另一答案
在基地R:
mat <- matrix(c(1,2,3,
4,5,6,
7,8,9), byrow = TRUE, ncol = 3)
R <- apply(mat, 1, prod)
R
sum(R)
R> R
[1] 6 120 504
R> sum(R)
[1] 630
在CRAN上有一个很好的替代方案,名为matrixStats,旨在添加其他矩阵函数的快速版本,以补充基础R中的rowSums
,colSums
(及其平均等价物)。
install.packages("matrixStats") ## install it from CRAN
## load matrixStats
library("matrixStats")
rowProds(mat)
R> rowProds(mat)
[1] 6 120 504
R> sum(rowProds(mat))
[1] 630
另一答案
只有部分答案,但使用rowSums可以构建你的on-base-product-function函数:
mat <- matrix(c(1,1,0,
1,3,-6,
12,12,12), byrow = TRUE, ncol = 3)
# function based on rowSums
my_rowprod <- function(x) ifelse((rowSums(x < 0) %% 2) == 1, -1, 1) * exp(rowSums(log(abs(x))))
my_rowprod(mat)
#[1] 0 -18 1728
以上是关于矩阵的行乘积和矩阵的列和的主要内容,如果未能解决你的问题,请参考以下文章