R 如何使用矩阵积在较大的矩阵中分配矩阵项
给定矩阵A,其中A为R 如何使用矩阵积在较大的矩阵中分配矩阵项,r,algorithm,linear-algebra,R,Algorithm,Linear Algebra,给定矩阵A,其中A为 x_11 x_12 x_13 x_21 x_22 x_23 x_31 x_32 x_33 x_41 x_42 x_43 如何使用矩阵积高效地创建第二个矩阵 x_11 0 0 x_21 0 0 x_31 0 0 x_41 0 0 0 x_12 0 0 x_22 0 0 x_32 0 0 x_42 0 0 0 x_13 0 0 x_2
x_11 x_12 x_13
x_21 x_22 x_23
x_31 x_32 x_33
x_41 x_42 x_43
如何使用矩阵积高效地创建第二个矩阵
x_11 0 0 x_21 0 0 x_31 0 0 x_41 0 0
0 x_12 0 0 x_22 0 0 x_32 0 0 x_42 0
0 0 x_13 0 0 x_23 0 0 x_33 0 0 x_43
这里有一个方法:
m <- as.matrix(read.table(text='11 12 13
21 22 23
31 32 33
41 42 43'))
do.call(cbind, lapply(split(m, seq(nrow(m))), diag))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
# [1,] 11 0 0 21 0 0 31 0 0 41 0 0
# [2,] 0 12 0 0 22 0 0 32 0 0 42 0
# [3,] 0 0 13 0 0 23 0 0 33 0 0 43
这里有一个方法:
m <- as.matrix(read.table(text='11 12 13
21 22 23
31 32 33
41 42 43'))
do.call(cbind, lapply(split(m, seq(nrow(m))), diag))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
# [1,] 11 0 0 21 0 0 31 0 0 41 0 0
# [2,] 0 12 0 0 22 0 0 32 0 0 42 0
# [3,] 0 0 13 0 0 23 0 0 33 0 0 43
假设您的原始矩阵为m:
假设您的原始矩阵为m:
这是一个创建对角矩阵的包。也许它的功能可以在应用中使用,也可以与重塑或cbind一起使用。虽然这可能不是最有效的方法。线性代数从何而来?@HongOoi这可能是一个家庭作业问题……这是一个创建诊断矩阵的软件包。也许它的功能可以在应用中使用,也可以与重塑或cbind一起使用。虽然这可能不是最有效的方法。线性代数从何而来?@HongOoi这可能是一个家庭作业问题。。。
m2 <- matrix(0, nrow=3, ncol=length(m))
m2[((col(m2) - 1) %% 3 + 1) == row(m2)] <- m
m2