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 回答