我有一個300MB的ascii文件,包含9列數據(製表符分隔,字符串和數字)。一個例子線下面給出:在matlab中加載ASCII文件並將它們保存爲.mat
11204226 736539.402697000 192.168.0.104 10.0324 0 1.1313 3.543 3 9
該文件結構良好,沒有空行或有故障的行應該存在。該格式在整個文件中保持不變。
當我嘗試加載(importdata)Ubuntu 14.04中的文件。 LTS,6GB RAM,Matlab 2015b系統只是凍結。我的同事成功地將文件加載到Windows 7,8GB RAM,Matlab 2014b中。
但是,該計劃是將數據保存在.mat文件中,他也無法做到這一點。文件被創建,但大小增加到1GB以上,沒有任何結束的跡象。
我試圖經由所述圖形界面或以下代碼加載數據:
tdata = importdata('data.dat');
保存.MAT文件經由接口grapical試圖爲好。
我認爲一個300MB的文件不應該構成這樣的挑戰。
你會選擇哪種方式處理文件?
我希望.mat文件比普通的ascii文件小。
此外,我的計劃是避免將原始文件分成小塊。
更新:
我的同事誰能夠加載數據,將結構中的所有字符串條目轉換爲數字。這是前三列。除了包含IP地址的第三列之外,我不確定爲什麼它們作爲字符串導入。使用全數字矩陣可以存儲數據,生成的.mat文件大小爲15MB。不知何故,字符串和數字的組合搞砸了一切。仍然不知道爲什麼。
好吧,文件大小不應該是一個問題 - 我已經加載了超過10GB的文件,即使RAM不適合它 - Matlab會緩存它反正。我假設的問題可能是你的代碼 - 所以請編輯你的問題並把它提出來。 – GameOfThrows
大多數'自動'導入程序會在第3列(IP地址,用3'.'分隔的4個數字,它不符合任何'數字'標準)時掙扎或窒息。我建議使用['textscan'](http://mathworks.com/help/matlab/ref/textscan.html)在您的數據具有不同類型的字段/列時導入數據。 – Hoki