我有一个其他人编码的matlab脚本,但无法加载超过4095的字符串序列(缓冲区大小错误)。如何使struct
中的元素更大以容纳更大的字符串序列?以下是创建struct
:
[...]
seq = struct('Header',{}, 'Sequence', {});
for ii=1:gene_num
seq(ii).Header = raw{ii+1,1};
seq(ii).Sequence = raw{ii+1,2};
end;
[...]
这是错误:
^G??? Buffer overflow (bufsize = 4095) while reading string from
file (row 54660, field 1). Use 'bufsize' option. See HELP TEXTREAD.
Error in ==> textread at 177
[varargout{1:nlhs}]=dataread('file',varargin{:});
Error in ==> fastaread at 101
ftext = textread(filename,'%s','delimiter','\n');
Error in ==> tfbs_scanner_zscore at 8
S = fastaread(fin);
有什么想法吗?
答案 0 :(得分:2)
您尝试读取的文件包含的行长于TEXTREAD函数中使用的默认缓冲区大小。
尝试增加缓冲区大小:
ftext = textread(filename, '%s', 'delimiter','\n', 'bufsize',50000);
选择适合您的价值
顺便说一句,TEXTREAD现已过时,考虑升级到TEXTSCAN