2014-09-22 76 views
1

我有很大的txt文件(〜25MB)。它不能在Excel中正確打開,並且無法導入它。將大文本數據導入並保存爲MATLAB格式

使用下面的命令我可以讀取裏面有什麼...但我不能將它保存爲一個matlab文件與其他數據一起使用。

我想:

fid = fopen('file.txt') 
while~feof(fid) 
tline = fgets(fid); 
disp(tline); 
end 

我都嘗試fgets()fgetl()。它讀取整個文件。但不會將信息存儲在工作區中。

+0

您知道fgets只是讀取一行嗎?所以Tline將只包含** last **行讀取(通常是空的)。 – bdecaf 2014-09-22 13:39:43

+0

是的,我知道...這就是問題....我沒有使用matlab處理數據...然後,我尋求幫助!感謝您的評論 – 2014-09-23 14:45:23

+0

可以尋求幫助。我只是在*你的*片段中告訴你,該文件的內容是**不存儲在一個變量中。因此它將不可用。 – bdecaf 2014-09-24 09:52:22

回答

1

如果在運行該代碼後變量tline不存在於matlab工作區中,則可能是在函數中而不是在腳本中運行它。此外,你需要保存在每次讀入某種以便它不會由您在讀取下一行覆蓋的陣列線。即

function foobar(foo,bar) 
fid=fopen('file.txt') 
n = 0; 
while~feof(fid) 
    tline=fgets(fid); 
    disp(tline); 
    n = n + 1; 
    data{n} = tline; 
end 

如果您在調用它函數,註釋掉函數行將導致變量在工作區中保留。

或者,您可以添加一行代碼以將所需的變量保存到mat文件中,然後再打開它。

function foobar(foo,bar) 
fid=fopen('file.txt') 
n = 0; 
while~feof(fid) 
    tline=fgets(fid); 
    disp(tline); 
    n = n + 1; 
    data{n} = tline; 
end 
fclose(fid); 
save('filename.mat','data'); 

,然後從工作區運行

load('filename.mat'); 

注:數據可能並不需要成爲一個細胞。它取決於文件中的數據類型

+0

這隻保存文件的最後一行! – 2014-09-22 13:44:58

+0

我會編輯我的答案,給我一分鐘 – Trogdor 2014-09-22 13:45:32

+0

它根本沒有工作......它保存了一個合適大小的矩陣,但它是完全空的...... – 2014-09-29 13:23:43

相關問題