2014-04-03 22 views
0

我有一個'.txt'(ANSI編碼)文件,其中包含大約880個字的短文。 我想用白色空格讀取文本。 我想閱讀matlab中的文件,但matlab拋出'緩衝區溢出'錯誤。在matlab中讀取大量包含空格的文本

我用下面的代碼:

e=textread(pathToFile,'whitespace',''); 
%%% further processing 

我用Matlab 2011年任何人都可以提出解決類似的問題。

回答

1

由於輸入流太大而無法放入當前緩衝區(默認情況下,最大字符串長度爲4095)。

可以增加使用'bufsize'可選參數的緩衝區大小,像

e = textread(pathToFile, 'whitespace', '', 'bufsize', 8191); % or larger 

另外,導入大型數據文件,考慮到讀段文件,從而減少所需的內存量。示例請查看here

查看更多信息here

+0

發佈的所有鏈接都顯示從格式化文本文件中讀取數據,而我有一個從非格式化文本文件讀取數據。 –

2

你可以使用textscan:

C = textscan(fileID,'%s', 100, 'Delimiter', '\n'); 

此存儲第一100行(如分隔由換行字符)從在單元陣列的開放FILEID。白色空間被保留。

+0

但我不知道提前行的數量...是否有任何功能獲取文本文件中的行數? –

+0

您不需要指定數字 - 刪除它,它將只讀取單個行,直到它碰到EOF。 – nkjt

+0

@nkjt我在matlab 2013上試過了,效果很好。但在matlab 2011b上,它不會將從文件中讀取的文本轉換爲字符串類型 –

相關問題