行绑定矩阵,将所有行归零但只有一行

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

以上是关于行绑定矩阵,将所有行归零但只有一行的主要内容,如果未能解决你的问题,请参考以下文章

162. 矩阵归零

162. 矩阵归零

将矩阵化简为行最简形矩阵有啥技巧,或者一般有啥特定的步骤么?

如何将矩阵中强元素附近的弱元素归零?

matlab不归零码为啥循环乘以占空比就可以变为归零码?

矩阵归零