我有一個文本文件,其中包含一個2維矩陣。它看起來像下面。在文本文件中轉換矩陣的有效方法是什麼?
01 02 03 04 05
06 07 08 09 10
11 12 13 14 15
16 17 18 19 20
正如您所看到的,每行由一個新行分隔,並且每列由空格分隔。我需要以有效的方式轉置這個矩陣。
01 06 11 16
02 07 12 17
03 08 04 05
04 09 14 19
05 10 15 20
實際上,矩陣是10,000乘以14,000。單個元素是雙重/浮動的。如果不是不可能的話,試圖將這個文件/矩陣全部轉置到內存中將是昂貴的。
沒有人知道一個util API來做類似這樣的事情或有效的方法嗎?
我曾嘗試過:我的幼稚方法是爲每列(轉置矩陣)創建一個臨時文件。所以,有10,000行,我將有10,000個臨時文件。當我讀取每一行時,我將每個值標記,並將該值附加到相應的文件中。所以對於上面的例子,我會有類似以下的內容。
file-0: 01 06 11 16
file-1: 02 07 12 17
file-3: 03 08 13 18
file-4: 04 09 14 19
file-5: 05 10 15 20
然後我重新讀入每個文件並將它們追加到一個文件中。我想知道是否有更聰明的方法,因爲我知道文件I/O操作將是一個痛點。
這只是一個觸摸超過千兆字節;-) – EJP 2012-03-20 07:39:36
編程已經減少到尋找API的這些天嗎? – zvrba 2012-03-20 07:40:07