2012-01-04 8 views
1

MATLABの正規表現では負の整数(「-1」など)が使用されますか。私のコードはこのエラー"Index exceeds matrix dimensions."のためうまく実行されていないと私はそれが私のデータファイル内の負の値と関係があることを知っています。ワークスペースウィンドウに負の整数が表示されます。MATLABの正規表現に負の整数を使用できます

 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); 

答えて

5

トークン(\d+)のみ戻ります数字、マイナス記号のような文字ではない:

私は私の正規表現ここ

に負の整数を許可することができる方法についての任意のアイデアは、コードです。したがって、マイナス記号がある場合、一致するものはなく、mおよび/またはm2は空です。したがって、セル配列にインデックスを作成しようとするとエラーが発生します。

は、オプションのマイナス記号を可能にする、代わりに

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

を試してみてください。

+0

私は完全に忘れました '?'それの前に任意のシンボルを置いて受け入れることができます。頭をアップしていただきありがとうございます。 – Jeiman

関連する問題