【发布时间】:2025-12-16 07:40:02
【问题描述】:
我不明白将较小矩阵的上三角形作为索引传递给较大矩阵时得到的结果。
此问题的答案中使用了此技术:Create a Correlation Matrix From a Correlation Vector in R (注意:在链接的帖子中,矩阵大小是相同的,而在我的示例中它们不是。)
在下面的第一个示例中,为什么会打印 10 而索引 > [2,2] 处的任何其他值不打印?我原以为只会打印 [1,2] 处的值。
largeMatrix <- matrix(1:12, ncol=2, byrow=TRUE)
largeMatrix
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
[4,] 7 8
[5,] 9 10
[6,] 11 12
smallMatrix <- matrix(1:4, ncol=2, byrow=TRUE)
smallMatrix
[,1] [,2]
[1,] 1 2
[2,] 3 4
upperTriangleSmall <- upper.tri(smallMatrix)
upperTriangleSmall
[,1] [,2]
[1,] FALSE TRUE
[2,] FALSE FALSE
largeMatrix[upperTriangleSmall]
[1] 5 2 10
我对预期输出的看法:
Either:
2
Or:
2 5 6 7 8 9 10
当将一个矩阵的上三角形作为索引传递给另一个相同大小的矩阵时,我理解结果。
smallMatrix <- matrix(1:4, ncol=2, byrow=TRUE)
smallMatrix
[,1] [,2]
[1,] 1 2
[2,] 3 4
newSmallMatrix <- matrix(7:10, ncol=2, byrow=TRUE)
newSmallMatrix
[,1] [,2]
[1,] 7 8
[2,] 9 10
newSmall[upperTriangleSmall]
[1] 8
【问题讨论】:
-
没想到(愚蠢的我),但我的问题仍然存在。我正在传递一个布尔矩阵作为索引,但我不明白为什么要打印打印的索引(更新的问题)。