我有一个矩阵 A 是:
A <- matrix(c(1:15), byrow=T, nrow=5)
A
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
[4,] 10 11 12
[5,] 13 14 15
现在我想创建一个矩阵 B,它是 8x8 维度(或 10x10 或 15x15 等),它看起来像这样:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 2 3 0 0 0 0 0
[2,] 4 5 6 0 0 0 0 0
[3,] 7 8 9 0 0 0 0 0
[4,] 10 11 12 0 0 0 0 0
[5,] 13 14 15 0 0 0 0 0
[6,] 0 0 0 0 0 0 0 0
[7,] 0 0 0 0 0 0 0 0
[8,] 0 0 0 0 0 0 0 0
所以从 A 开始,我想将列和行添加到 8x8 维度,全部替换为零值......
任何的想法?
先感谢您!!
最佳答案
另一种方法是首先创建较大的矩阵,然后将较小的矩阵插入其中,如以下函数所示:
expandR = function(m,nrows,ncols,with=0){
p=matrix(with,nrows,ncols)
p[1:nrow(m),1:ncol(m)]=m
p
}
不确定哪个更好(更快、更清洁等)。如果您尝试扩展到比原始尺寸更小的尺寸,则会出现我的错误。
关于r - 从较小的矩阵创建一个更大的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3948497/