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

27 vues (au cours des 30 derniers jours)
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.

Réponse acceptée

Adam
Adam le 6 Août 2014
[b, c] = strtok( a, '_' )
b = strcat( b, c )
looks like it works.
  1 commentaire
Ken Campbell
Ken Campbell le 6 Août 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

Connectez-vous pour commenter.

Plus de réponses (1)

AJ von Alt
AJ von Alt le 6 Août 2014
b = regexprep(a,'^_','','emptymatch')
  1 commentaire
Ken Campbell
Ken Campbell le 6 Août 2014
That works too and is elegant. I should learn more about regular expressions. Thanks.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by