2015-07-10 108 views
-1

我有兩個矩陣,M1(6400x6)和M2(315x3)如何使用索引向量從矩陣中提取行?

M2M1一個子集。我在M2上做了一些數據插補,現在我想用M2的行索引從M1中提取相應的行。我該如何解決這個問題?

由於

+1

你是如何從'M1'中提取'M2'的?這對於繼續進行至關重要。 – MichaelChirico

回答

0

下面是可能有助於一個例子:

m1 <- matrix(runif(5000),ncol=50) #define a large matrix with random numbers 
m2 <- m1[5:17,8:30] #create a subset starting from index [5,8] 
#How to retrieve the information on the location of m2 within m1: 
idx <- which(m1 %in% m2, arr.ind = TRUE)[1] 
rownum <- idx %% nrow(m1) 
colnum <- ceiling(idx/nrow(m1)) 
#> rownum 
#[1] 5 
#> colnum 
#[1] 8 

這意味着該子集平方米的初始點(左上角,可以這麼說)位於所述更大的矩陣內m1在第5行第8列。

我希望這會有所幫助。但是,如果您已經執行了更復雜的修改,並且子集不僅僅是大矩陣的簡單矩形集羣,並且條目以相同的方式排序,那麼我相信您需要提供更多關於構建子矩陣,以獲得有用的答案。