我試圖將矩陣映射到另一個矩陣上,逐行。也許是更好的通過一個簡單的例子來說明這一點:將矩陣映射到其他矩陣,逐行
讓
startMatrix <- t(matrix(c(2.3, 1.2, 3.6, 6.9, 5.3, 6.7), nrow = 3, ncol = 2))
mapMatrix <- t(matrix(c(1, 1.3, 2, 2.5, 3, 5, 5.6, 6, 6.2, 7), nrow = 5, ncol = 2))
現在mapMatrix
功能看作是一種startMatrix
網格,即[1, 1.3, 2, 2.5, 3]
是爲startMatrix
和[5, 5.6, 6, 6.2, 7]
第一行網格的第二排網格爲startMatrix
。此外,startMatrix
被映射到比他自己更小的最近的元素,例如2.3
轉到2
和6.7
到6.2
。
因此,映射到startMatrix
mapMatrix
時結果應該是一個矩陣,如下所示:
result = [2, 1, 3 ;
6.2, 5, 6.2]
其中;
表示行的結尾。
我在尋找一種快速的方法,因爲對於超過100行和1000列的矩陣,這樣的過程必須執行超過10.000次。
開始的地方:'x = c(2.3,1.2,3.6); y = c(1,1.3,2,2.5,3); y [findInterval(x,y)]' – Frank
你有mapMatrix作爲矩陣的原因嗎?我不瞭解你目前存儲矩陣的方式。 1,1.3,2,2.5,3出現在矩陣的位置11,12,21,22,31 –
@road_to_quantdom對不起,我糾正了提交的代碼。現在它應該是有道理的。 –