【发布时间】:2021-04-18 06:21:36
【问题描述】:
make_basis <- function(k, p = 10) replace(numeric(p), k, 1)
width <- 4
index <- 1
len <- 3
vec <- make_basis(index, len)
> vec
[1] 1 0 0
vec 是长度为len 的单位向量。我想用vec 重复width 次和0 在其他地方填充尺寸为(width * len) x len 的矩阵。也就是说,我想要看起来像这样的东西:
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 0 0 0
[3,] 0 0 0 0
[4,] 0 1 0 0
[5,] 0 0 0 0
[6,] 0 0 0 0
[7,] 0 0 1 0
[8,] 0 0 0 0
[9,] 0 0 0 0
[10,] 0 0 0 1
[11,] 0 0 0 0
[12,] 0 0 0 0
这是另一个例子:
width <- 4
index <- 2
len <- 2
vec <- make_basis(index, len)
> vec
[1] 0 1
想要的矩阵是:
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 1 0 0 0
[3,] 0 0 0 0
[4,] 0 1 0 0
[5,] 0 0 0 0
[6,] 0 0 1 0
[7,] 0 0 0 0
[8,] 0 0 0 1
【问题讨论】: