使用一个命令提取矩阵的几个不同元素?

Extract several different elements of a matrix with one command?

如果您有任何矩阵 .. 例如附加的那个。而你只想提取元素 [1,2]、[1,3]、[1,4]、[2,3]、[2,4] 和 [3,4] ...有没有可能只用一个命令就可以做到这一点?

提前致谢。

我们可以创建一个row/column索引作为matrix来提取基于位置的元素

m1[cbind(c(1, 1, 1, 2, 2, 3), c(2, 3, 4, 3, 4, 4))]

如果您想提取对角线以上的所有数字(即 1.00000s),则可以使用不同的函数而无需指定位置。对于对角线以上,可以使用upper.tri();那么在下面,你可以使用 lower.tri().

m1[upper.tri(m1)]