我有一個大的數據集分爲5個文件(每個文件有15000個屬性,第一個文件包含頭(屬性名稱)和9999記錄,另外4個包含10000個記錄)。如何將多個文件讀入單個單元陣列?
使用textscan,我創建了必須合併,不知道這種做法是否恰當5個電池陣列或者倒不如直接讀取所有的5個文件成單細胞陣列。無論如何,我會很感激你們中的任何一個人能夠展示將多個單元格數組合併成單個單元格數組或將多個文本文件合併成單個單元格數組的方式。
謝謝!
我有一個大的數據集分爲5個文件(每個文件有15000個屬性,第一個文件包含頭(屬性名稱)和9999記錄,另外4個包含10000個記錄)。如何將多個文件讀入單個單元陣列?
使用textscan,我創建了必須合併,不知道這種做法是否恰當5個電池陣列或者倒不如直接讀取所有的5個文件成單細胞陣列。無論如何,我會很感激你們中的任何一個人能夠展示將多個單元格數組合併成單個單元格數組或將多個文本文件合併成單個單元格數組的方式。
謝謝!
除非你想要做一些Java的魔術,你不能直接讀取多個文件到一個單一的陣列。
然而,一旦你獲得單元陣列,它應該很容易把它們混合起來:假設有相同數量的每個單元陣列中的列,你可以將它們連接起來是這樣的:
finalCell = [cell1;cell2;cell3;cell4;cell5];
擴展Jonas的答案,如果內存是一個問題,您可以在讀取文件時將它們合併,以避免使用5 x 15000 x 10000 + 1 15000 x 50000單元陣列。
finalCell = textscan(FID_1, '格式');
finalCell = [finalCell; textscan(fid_2, '格式')];
finalCell = [finalCell; textscan(fid_3, '格式')];
finalCell = [finalCell; textscan(fid_4, '格式')];
finalCell = [finalCell; textscan(fid_5, '格式')];
最好的問候,
亞當
這段代碼返回一個大小爲5 x 15000的單元格數組。我想得到的是一個大小爲50000 x 15000的單元格數組。 – 2010-08-13 13:02:33
如果我正確理解你的文件的描述,每一個包含10000按15000陣列的數據。那是對的嗎?這將意味着一個單一的數組(假設它是double類型)將佔用大約1.2 GB。這會給你帶來一些記憶問題。 – gnovice 2010-08-11 15:21:57
@gnovice:好的。儘管如此,OP可能會在優秀的計算服務器上運行。 – Jonas 2010-08-11 15:37:02