展开一个有填充值的矩阵

假设我有一个矩阵,如

     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

我想把它展开,比如说,5×5,并在新的单元格中填入一些给定的值(比如说0),这样新的矩阵就像这样。

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    4    7    0    0
[2,]    2    5    8    0    0
[3,]    3    6    9    0    0
[4,]    0    0    0    0    0
[5,]    0    0    0    0    0

我怎么能用基本的R函数来做这个?

解决方案:

我们可以创建一个 matrix 的0,并赋予

m2 <- matrix(0, 5, 5)
m2[seq_len(nrow(m1)), seq_len(ncol(m1))] <- m1

或者另一种选择是 bdiag

library(Matrix)
as.matrix(bdiag(m1, diag(2) * 0))
#      [,1] [,2] [,3] [,4] [,5]
#[1,]    1    4    7    0    0
#[2,]    2    5    8    0    0
#[3,]    3    6    9    0    0
#[4,]    0    0    0    0    0
#[5,]    0    0    0    0    0

资料

m1 <- matrix(1:9, 3, 3)

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在文本框中实时显示日志?

2022-9-8 3:51:37

未分类

在R中绘制每天行驶距离的线段图时,如何将零值设为平均值

2022-9-8 3:51:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索