gpt4 book ai didi

R 组合矩阵

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

我有两个矩阵,一个是二元矩阵(零或一),另一个是相同维度的整数矩阵,这些是方阵。

我想要一种以特定方式组合它们的有效方法,而不需要沿着每个元素进行迭代。

我想要组合它们的方式是从矩阵 A 和矩阵 B 得到一个结果矩阵,对于元素来说,采用不为零的最小数字。

任何人都可以想出 R 中的一个技巧来实现这一点吗?我尝试用数学方法来实现这一点,但还是不够,我想知道是否有一种方法可以用条件语句覆盖矩阵?

最佳答案

 matA <- matrix(-8:7, 4,4); set.seed(123)
matB <- matrix(sample(0:1, 16, repl=TRUE), 4, 4)
matC <- matrix(NA, nrow(matA), ncol(matA))
matC[] <- pmin( matA, MatB)
matC[ matB==0] <- matA[matB==0]

matB
#-----------
[,1] [,2] [,3] [,4]
[1,] 0 1 1 1
[2,] 1 0 0 1
[3,] 0 1 1 0
[4,] 1 1 0 1
matC
#---------
[,1] [,2] [,3] [,4]
[1,] -8 -4 0 1
[2,] -7 -3 1 1
[3,] -6 -2 1 6
[4,] -5 -1 3 1

flodel 的方法产生:

> ifelse(matB == 0, matB, pmin(matA, matB))
[,1] [,2] [,3] [,4]
[1,] 0 -4 0 1
[2,] -7 0 0 1
[3,] 0 -2 1 0
[4,] -5 -1 0 1

mnel 的方法产生:

> (matB * !matA) + matA
[,1] [,2] [,3] [,4]
[1,] -8 -4 1 4
[2,] -7 -3 1 5
[3,] -6 -2 2 6
[4,] -5 -1 3 7

关于R 组合矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17479316/

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