我需要抓取構成對稱矩陣的較低三角形的所有三個元素三角形。我想不出如何按照最左邊的列向下,然後是右邊的下一列的順序抓住所有這些部分,等等。我知道numbe ROF下三角內小三角形是:在較低的三角形內抓取三角形
n = x(x - 1)/2
where: x = nrow(mats[[i]])
在這裏,我創建了三個矩陣,用字母(這是我更容易概念化這種方式)和元素,我的順序尋找:
FUN <- function(n) {
matrix(LETTERS[1:(n*n)], n)
}
mats <- lapply(3:5, FUN)
所以這是我想獲得(我把它放在代碼,而不是輸出格式)上面創建的每個矩陣的輸出:
list(c("B", "C", "F"))
list(c("B", "C", "G"), c("C", "D", "H"), c("G", "H", "L"))
list(c("B", "C", "H"), c("C", "D", "I"), c("D", "E", "J"),
c("H", "I", "N"), c("I", "J", "O"), c("N", "O", "T"))
我怎樣才能不要他的任務可能以最快的方式停留在R基地?
不知道這視覺的,我以後有什麼是有用的,但它可能是:
是5x5矩陣,你會期望最大的有測試? –
不,它可能會更大(儘管我非常懷疑它會更大)。 –
@TylerRinker - 我不得不強制關閉我的R會話,同時嘗試在10K * 10K矩陣上進行一些基準測試。 1K * 1K是幾秒鐘的問題。我想知道那裏的人可能會有更有效的實施。 – thelatemail