Is there an efficient method to remove leading underscores from a cell array of strings?

31 Ansichten (letzte 30 Tage)
Given
a={'rose','_tulip_blue','lilac','_daisy'}
is there an efficient way of stripping the leading underscores to give
b={'rose','tulip_blue','lilac','daisy'}
I tried
strtok(a,'_')
but that gives
b={'rose','tulip','lilac','daisy'}
and misses the '_blue'. I would like to avoid looping through the strings one at a time if possible.

Akzeptierte Antwort

Adam
Adam am 6 Aug. 2014
[b, c] = strtok( a, '_' )
b = strcat( b, c )
looks like it works.
  1 Kommentar
Ken Campbell
Ken Campbell am 6 Aug. 2014
I agree it works :-)
It also copes with more than 2 underscores. For example.
a={'rose','_tulip_blue_red','lilac','_daisy'}
[b,c]=strtok(a,'_');
b=strcat(b,c);
gives
b={'rose' 'tulip_blue_red' 'lilac' 'daisy'}
Thanks

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

AJ von Alt
AJ von Alt am 6 Aug. 2014
b = regexprep(a,'^_','','emptymatch')

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by