MATLAB: How to optimize a code to find postfix in a sting

codeoptimizationstrings

Hi! I have a cell 106×1 of strings 'TrajCompact'. In every string I want to find all the prefix that are combination of (0,1,2,3,4) and consider only the postfix after this prefix My prefix are: 00,01,02,03,04,10,11,12,13,14,20,21,22,23,24,30,31,32,33,34,40,41,42,43,44
I try to do this, using the code
for k=1:size(TrajCompact,1)
matches(k) = regexp(TrajCompact(k), '\(?00.*', 'match', 'once');
end
The code run but I have to write it 25 times: one for every prefix. I want to find a compact expression so I modify the code in this way
[digits{1:2}] = ndgrid(0:4);
for k=1:106
matches(k) = regexp(TrajCompact(k), sprintf('?%d%d.*', digits{1}(k), digits{2}(k)), 'match', 'once');
end
but it doesn't make what I want, can you help me to find the error Thanks

Best Answer

matches(k) = regexp(TrajCompact(k), '(?<=\(?[0-4]{2}).*', 'match', 'once');
this would strip off an optional '(' followed by a single two-digit number that is composed of the digits 0-4 only, and the rest of the string would be returned.
If this is not what you want please post a sample input line.