在matlab中读取包含空格的大量文本

时间:2014-04-03 16:26:05

标签: matlab file

我有一个'.txt'(ANSI编码)文件,其中包含大约880个单词的文章。 我想用白色空格阅读文本。 我想在matlab中读取该文件,但matlab会抛出'缓冲区溢出'错误。

我正在使用以下代码:

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

我正在使用Matlab 2011.任何人都可以为此建议解决方法。

2 个答案:

答案 0 :(得分:2)

您可以使用textscan:

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

这将从单元数组中的open fileID存储前100行(由换行符分隔)。白色空间得以保留。

答案 1 :(得分:1)

因为输入流太大而无法放入当前缓冲区(默认情况下,最大字符串长度,以字节为单位4095)。

您可以使用'bufsize'可选参数增加缓冲区大小,例如

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

或者,要导入大型数据文件,请考虑分段读取文件,这样可以减少所需的内存量。查看here以获取示例。

查看here了解详情。