我在map a matrix with another matrix中找到了同样的问题。但是,这是在Matlab中。如果我想用R中的另一个矩阵映射矩阵,如何在不使用循环的情况下轻松获取。例如,我有以下矩阵,
A = [ 1 4 3
2 3 4
4 3 1
4 5 5
1 2 1]
B = [3 3 2
2 0 1
1 1 5
4 1 3
5 2 0]
我的映射应该如下所示;
R = [1 4 3
2 3 4
4 3 5
4 1 3
5 2 0]
结果R将取自A的值从[1,1]开始到[3,2]。然后剩余的值从B开始,从[3,3]到[5,3]。
答案 0 :(得分:2)
简单如下:
R <- t(A)
R[9:15] <- t(B)[9:15]
t(R)
[,1] [,2] [,3] [1,] 1 4 3 [2,] 2 3 4 [3,] 4 3 5 [4,] 4 1 3 [5,] 5 2 0
A <- matrix(c(1,4,3,2,3,4,4,3,1,4,5,5,1,2,1), nrow = 5, ncol = 3, byrow = TRUE)
B <- matrix(c(3,3,2,2,0,1,1,1,5,4,1,3,5,2,0), nrow = 5, ncol = 3, byrow = TRUE)
答案 1 :(得分:0)
与Djack的方法略有不同,我使用matrix
和byrow = T
,并将原始矩阵编入索引:
matrix(c(t(A)[1:8], t(B)[9:15]), byrow = T, ncol = 3)