MATLAB: How to divide a string into substrings

fragmentsplit

Hi
How can I fragment a string into substring? For example
Str = 'ABCDEF'
How can i fragment the above string in into following :
'A', 'BCDEF'
'AB' , 'CDEF'
'ABC' , 'DEF'
'ABCD' , 'EF'
'ABCDE' , 'F'
and strore substrings into a struct?

Best Answer

Assuming your using version higher than 2016b of MATLAB:
Str='A':'F';
Z=repmat(Str,strlength(Str)-1,1);
f = @(x)regexp(""+x,'\w*','match');
ZZ=[f(tril(Z)),f(triu(Z,1))];
S=cell2struct(ZZ,{'First_Part','Second_Part'},2)
For older versions:
Str='ABCDEF';
Z=repmat(Str,strlength(Str)-1,1);
f = @(x)regexp(cellstr(x),'\w*','match');
ZZ=[f(tril(Z)),f(triu(Z,1))];
S=cell2struct(reshape(ZZ,[],2),{'First_Part','Second_Part'},2)