Here is one way to do it:
c = {'(43)2'
'(43)42(34)'
'042123'};
substrings = regexp(c, '(?:\(\d+\))|\d', 'match');
result = cellfun(@(ss) arrayfun(@(n) [ss{1:n}], 1:numel(ss), 'UniformOutput', false), substrings, 'UniformOutput', false)
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!