1

MATLAB の正規表現は、「-1」などの負の整数を取りますか。このエラーが原因でコードがうまく動作していないよう"Index exceeds matrix dimensions."で、データ ファイルの負の値と関係があることがわかっています。ワークスペース ウィンドウに負の整数が表示されます。

正規表現で負の整数を許可する方法についてのアイデア

コードは次のとおりです。

       m = regexp(value, 'START=(\d+)', 'tokens');
       m2 = regexp(value, 'STOP=(\d+)', 'tokens');

       start = cell2mat(m{1});
       stop = cell2mat(m2{1});


       % Print result
       fprintf(fout, 'INSERT INTO cath_domains (pdbcode, cathbegin, cathend) VALUES("%s", %s, %s)\n', domain, start, stop);
4

1 に答える 1

5

トークン(\d+)は、マイナス記号などの文字ではなく、数字のみを返します。したがって、マイナス記号がある場合、一致がない、mおよび/またはm2空であるため、セル配列にインデックスを付けようとするとエラーが発生します。

試す

m = regexp(value, 'START=(-?\d+)', 'tokens');

代わりに、オプションのマイナス記号を使用できます。

于 2012-01-04T03:14:38.057 に答える