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);
答案 0 :(得分:5)
令牌(\d+)
只返回数字,而不是减号等字符。因此,如果存在减号,则没有匹配项,m
和/或m2
为空,因此当您尝试索引到单元格数组时会出现错误。
尝试
m = regexp(value, 'START=(-?\d+)', 'tokens');
相反,它允许可选的减号。