1

我有一个 6 行的矩阵和一个长度为 6 的向量,我想用它来重新组织我的矩阵。

我的新矩阵的第一行应该包含我的向量第一个数字的值所在的行。

我的新矩阵的第二行应该包含我的向量第二个数字的值所在的行。

这是一个例子:

> Matrix <- matrix(rnorm(30),nrow=6,ncol=5)
> Vector <- c(1,3,6,2,4,5)

实际的第一行将在操作后位于第一行位置。实际的第二行将在操作后位于第三行位置。实际操作后的第三行将在第六行位置。等等....

我希望我的解释足够清楚!

为了让我的问题更清楚,我做了这个编辑

编辑:

> Matrix=matrix(c(1,2,3,4,5,6,7,8,9),nrow=3,ncol=3,byrow=T)
> Matrix

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

> Vector=c(2,3,1)

我想重新组织行以获得这个:

> NewMatrix=matrix(c(4,5,6,7,8,9,1,2,3),byrow=T)
> NewMatrix

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

第 2 行现在在第 1 位,第 3 行现在在第 2 位,第 1 行现在在第 3 位。

4

1 回答 1

5

使用向量索引:

Matrix[Vector,]

要查看发生了什么,最好使用不同的Matrix

Matrix=matrix(1:30, nrow=6)
Matrix
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    7   13   19   25
## [2,]    2    8   14   20   26
## [3,]    3    9   15   21   27
## [4,]    4   10   16   22   28
## [5,]    5   11   17   23   29
## [6,]    6   12   18   24   30
Matrix[Vector,]
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    7   13   19   25
## [2,]    3    9   15   21   27
## [3,]    6   12   18   24   30
## [4,]    2    8   14   20   26
## [5,]    4   10   16   22   28
## [6,]    5   11   17   23   29
于 2013-02-24T15:49:07.863 回答