矩阵的行乘积和矩阵的列和

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中的rowSumscolSums(及其平均等价物)。

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

以上是关于矩阵的行乘积和矩阵的列和的主要内容,如果未能解决你的问题,请参考以下文章

矩阵乘法在numpy/matlab/数学上的不同

2×3矩阵乘3×2矩阵要怎么算?

2-15 矩阵基础2

矩阵与向量的乘积

计算矩阵的乘积

如何计算矩阵的乘法?