gpt4 book ai didi

r - 制作特殊矩阵的最佳方法

转载 作者:行者123 更新时间:2023-12-04 15:27:34 24 4
gpt4 key购买 nike

我想在 r 中创建以下矩阵:

1 0 0 4
0 2 0 5
0 0 3 6

我使用了下面的代码:

matrix(c(1,0,0,0,2,0,0,0,3,4,5,6),nrow=3)

我的代码有效。但我不喜欢我的解决方式。我正在考虑找到制作这个矩阵的最简单方法。你认为我的代码是制作这个矩阵的最简单的代码吗?如果没有,谁能写出比我的更简单的代码?

最佳答案

你的第一个矩阵

> cbind(diag(1:3), 4:6)
[,1] [,2] [,3] [,4]
[1,] 1 0 0 4
[2,] 0 2 0 5
[3,] 0 0 3 6

你的第二个

> matrix(1, nrow=3, ncol=3) - diag(1, 3)
[,1] [,2] [,3]
[1,] 0 1 1
[2,] 1 0 1
[3,] 1 1 0

你的第三个

> matrix(seq(1, 35, 2), nrow=3, byrow=TRUE)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 3 5 7 9 11
[2,] 13 15 17 19 21 23
[3,] 25 27 29 31 33 35

和你的决赛

> matrix(0.5, nrow=3, ncol=3) + diag(0.5, 3)
[,1] [,2] [,3]
[1,] 1.0 0.5 0.5
[2,] 0.5 1.0 0.5
[3,] 0.5 0.5 1.0

正如@jay.sf 所指出的,对于第二个和第四个矩阵有一个更复杂的解决方案:

# second matrix
`diag<-`(matrix(1, 3, 3), 0)
# fourth matrix
`diag<-`(matrix(0.5, 3, 3), 1)

关于r - 制作特殊矩阵的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61970140/

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