行绑定矩阵,将所有行归零但只有一行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了行绑定矩阵,将所有行归零但只有一行相关的知识,希望对你有一定的参考价值。
给定一个矩阵
a <- matrix(c(15,2,11,16,7,12,1,8,3), nrow=3, ncol=3, byrow=T)
我想对矩阵的三个副本进行行绑定,但是在每个副本中,除了一个行之外的所有行都应该具有零值。期望的结果:
15 2 11
0 0 0
0 0 0
0 0 0
16 7 12
0 0 0
0 0 0
0 0 0
1 8 3
我可以通过rbind(a[1,],0,0,0,a[2,],0,0,0,a[3,])
做到这一点,但处理大型矩阵时有更好的方法吗?
答案
matrix(t(cbind(a,matrix(0,3,9))),ncol=3,byrow=T)[1:9,]
[,1] [,2] [,3]
[1,] 15 2 11
[2,] 0 0 0
[3,] 0 0 0
[4,] 0 0 0
[5,] 16 7 12
[6,] 0 0 0
[7,] 0 0 0
[8,] 0 0 0
[9,] 1 8 3
另一答案
这个怎么样:
apply(a, 2, function(r) rbind(r, matrix(rep(0,9), nrow=3)))[1:9, ]
[,1] [,2] [,3] [1,] 15 2 11 [2,] 0 0 0 [3,] 0 0 0 [4,] 0 0 0 [5,] 16 7 12 [6,] 0 0 0 [7,] 0 0 0 [8,] 0 0 0 [9,] 1 8 3
以上是关于行绑定矩阵,将所有行归零但只有一行的主要内容,如果未能解决你的问题,请参考以下文章