How do I parse this string?
Show older comments
I would like to parse the following string
a='4:256404:val=9.999e+20:val=1.82:val=2.15:val=2.66:val=2.18:val=1.81';
to obtain the vector x = [9.999e+20 1.82 2.15 2.66 2.18 1.81]. In reality the string is 5308 characters long and there are very many of them. I believe I can't parse this with regexp because I want to separate with a defined sequence ':val='. I could do the following, but is there a cleaner way?
matchThisString = ':val=';
iBreak = findstr(a, matchThisString);
x = NaN*ones(1, (length(iBreak)-1));
for ii = 1:(length(iBreak)-1)
iStart = iBreak(ii) + length(matchThisString);
iEnd = iBreak(ii + 1) - 1;
x(ii) = str2num(a(iStart:iEnd));
end
Accepted Answer
More Answers (0)
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!