MATLAB: Insert underscore into the string

insert underscore into the string

a = datestr(now,31)
a = 2016-08-23 09:15:47
a = regexprep(a,'[^a-zA-Z0-9]','') = 20160823091547
a(1:2) = []
a = '160823091547'
Now i need to insert the underscore after the sixth element in the string
160823_091547
how can i do this?
is it possible to optimize the above steps or my approach is correct?
Thanks a lot

Best Answer

Using regexprep, this would be one of the many ways to do it:
a = regexprep(datestr(now, 31), '..(..)-(..)-(..) (..):(..):(..)', '$1$2$3_$4$5$6')
But even simpler, why not ask datestr to output exactly what you want directly:
a = datestr(now, 'yymmdd_HHMMSS')