gpt4 book ai didi

矩阵的行向后累积乘积/乘法

转载 作者:行者123 更新时间:2023-12-02 01:31:02 28 4
gpt4 key购买 nike

我有一个矩阵x:

x <- matrix(1:8, nrow = 2, ncol = 4, byrow = 2)
# [,1] [,2] [,3] [,4]
#[1,] 1 2 3 4
#[2,] 5 6 7 8

我想得到一个新的矩阵y:

#     [,1] [,2] [,3] [,4]
#[1,] 24 24 12 4
#[2,] 1680 336 56 8

逻辑是(以第一行为例):

y[1, 1] = prod(x[1, 1:4])
y[1, 2] = prod(x[1, 2:4])
y[1, 3] = prod(x[1, 3:4])
y[1, 4] = prod(x[1, 4:4])

我知道如果我想将整行相乘,prod 函数就可以工作,但我不知道如何进行上面提到的顺序乘法。

最佳答案

没有任何额外的包:

ind <- ncol(x):1
t(apply(x[, ind], 1, cumprod))[, ind]
# [,1] [,2] [,3] [,4]
#[1,] 24 24 12 4
#[2,] 1680 336 56 8

使用ma​​trixStats包更高效:

ind <- ncol(x):1
matrixStats::rowCumprods(x, cols = ind)[, ind]
# [,1] [,2] [,3] [,4]
#[1,] 24 24 12 4
#[2,] 1680 336 56 8

关于矩阵的行向后累积乘积/乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73276514/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com