0

他の誰かがコーディングした 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);

何か案は?

4

1 に答える 1

2

読み取ろうとしているファイルには、TEXTREAD 関数で使用されるデフォルトのバッファ サイズよりも長い行が含まれています。

バッファ サイズを増やしてみてください。

ftext = textread(filename, '%s', 'delimiter','\n', 'bufsize',50000);

自分に合った値を選択してください

ところで、TEXTREAD は廃止されました。TEXTSCAN へのアップグレードを検討してください。

于 2012-07-04T13:46:35.680 に答える