Hi Guys!
I am trying to split a numberic sting in cell array data. but unable to do it.
a = {'c\datat\pic\res\000-774'; '\c\datat\pic\res\152-7987';}
need output like
a1 = ('c\datat\pic\res\';'c\datat\pic\res\ ')
a2 = ('000-774';'125-7957')
can anyone help me to solve.
thanks in adavance!!

5 commentaires

KSSV
KSSV le 24 Avr 2020
Read about regexp.
Tommy
Tommy le 24 Avr 2020
Or possibly fileparts? Based on your example
dpb
dpb le 24 Avr 2020
Modifié(e) : dpb le 24 Avr 2020
@Tommy is spot on...
> [a1,a2]=cellfun(@fileparts,a,'UniformOutput',false)
a1 =
2×1 cell array
{'c\datat\pic\res' }
{'\c\datat\pic\res'}
a2 =
2×1 cell array
{'000-774' }
{'152-7987'}
>>
Given they're file names by inspection, just lacking the optional extension.
Suggest move to an Answer so OP can Accept and go on to bigger and better things... :)
Tommy
Tommy le 24 Avr 2020
Happily, though seems to me you did all the work!
dpb
dpb le 24 Avr 2020
You had the bright (and to me right) idea, though...the rest is a oneliner...

Connectez-vous pour commenter.

 Réponse acceptée

Tommy
Tommy le 24 Avr 2020
Modifié(e) : Tommy le 24 Avr 2020

1 vote

Use fileparts and cellfun. Code courtesy of @dpb:
>> a = {'c\datat\pic\res\000-774'; '\c\datat\pic\res\152-7987'};
[a1,a2]=cellfun(@fileparts,a,'UniformOutput',false)
a1 =
2×1 cell array
{'c\datat\pic\res' }
{'\c\datat\pic\res'}
a2 =
2×1 cell array
{'000-774' }
{'152-7987'}

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by