2013-02-24 137 views
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) 

我想reorganisze,以獲得該行:

> 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 

的第二排現在在第一個位置,第三排現在在第二個位置,第一排現在在第三個位置。

+0

你能說明清楚?也許只是明確寫出一個3x3系統的例子?這聽起來像你想要做一些標準的事情,但還不知道它的名字是什麼......但我不能完全猜測你正在做什麼。學習數學最棘手的部分之一是弄清楚如何向其他人描述事物! :) – mathtick 2013-02-24 15:48:07

回答

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