r - 从较小的矩阵创建一个更大的矩阵

标签 r matrix

我有一个矩阵 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/

相关文章:

R GPU工具: clearing or reusing memory

python - 两个特征矩阵的有效成对相关

matlab - 如何将元胞数组中不同大小的矩阵组合成MATLAB中的矩阵

matrix - 如何使用 printf 以 Octave 形式打印矩阵值

r - 当某个值位于其他两个因子之间(使用新列或添加级别)时,如何对因子变量进行编码?

r - 使用 R Shiny 改变数据框

android - 按钮矩阵,如安全模式面板

java - 在 Android 中为涂抹/Swing 效果制作矩阵(见图片)

R从model.frame中恢复原始data.frame

将带有日语字符的csv文件读入R