gpt4 book ai didi

r - 如何将矩阵与多个向量相乘以获得矩阵列表?

转载 作者:行者123 更新时间:2023-12-02 02:16:41 25 4
gpt4 key购买 nike

假设我们有以下矩阵:

m=matrix(1:6,ncol=2)

[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6

使用 sweep 我们可以将矩阵 m 与一些向量 v 相乘:

v=c(3,4)

sweep(m , MARGIN=2, v , `*`)

# Output :
[,1] [,2]
[1,] 3 16
[2,] 6 20
[3,] 9 24

我正在寻找使用多个矢量来执行此操作的方法。例如:

v_matrix=matrix(data=c(3,4,7,8),ncol=2,byrow=TRUE)

v_matrix

[,1] [,2]
[1,] 3 4
[2,] 7 8

预期的输出是:

[[1]]
[,1] [,2]
[1,] 3 16
[2,] 6 20
[3,] 9 24
[[2]]
[,1] [,2]
[1,] 7 32
[2,] 14 40
[3,] 21 48

最佳答案

遍历 v_matrixapply 中的行, 然后使用 sweepvector 的行值上'm' 为 matrix

do.call("c", apply(v_matrix, 1, function(x) list(sweep(m, MARGIN = 2, x, `*`))))

-输出

#[[1]]
# [,1] [,2]
#[1,] 3 16
#[2,] 6 20
#[3,] 9 24

#[[2]]
# [,1] [,2]
#[1,] 7 32
#[2,] 14 40
#[3,] 21 48

关于r - 如何将矩阵与多个向量相乘以获得矩阵列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67048691/

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