我有一个".txt"(ANSI编码)文件,其中包含一篇大约880字的文章。我想阅读带有空格的文本。我想在 matlab 中读取该文件,但 matlab 抛出"缓冲区溢出"错误。
我正在使用以下代码:
e=textread(pathToFile,'whitespace','');
%%% further processing
我正在使用 Matlab 2011。任何人都可以为此提出解决方法。
您可以使用
textscan:
C = textscan(fileID,'%s', 100, 'Delimiter', 'n');
这会将打开的 fileID 中的前 100 行(由换行符分隔)存储在单元格数组中。 保留空格。
因为输入流太大而无法容纳当前缓冲区(默认情况下,最大字符串长度(以字节为单位)为 4095
)。
您可以使用'bufsize'
可选参数增加缓冲区大小,例如
e = textread(pathToFile, 'whitespace', '', 'bufsize', 8191); % or larger
或者,要导入大型数据文件,请考虑分段读取文件,这样可以减少所需的内存量。查看此处的示例。
查看此处了解更多信息。