string split in cell array

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 Commenti

KSSV
KSSV il 24 Apr 2020
Read about regexp.
Tommy
Tommy il 24 Apr 2020
Or possibly fileparts? Based on your example
dpb
dpb il 24 Apr 2020
Modificato: dpb il 24 Apr 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 il 24 Apr 2020
Happily, though seems to me you did all the work!
dpb
dpb il 24 Apr 2020
You had the bright (and to me right) idea, though...the rest is a oneliner...

Accedi per commentare.

 Risposta accettata

Tommy
Tommy il 24 Apr 2020
Modificato: Tommy il 24 Apr 2020
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'}

Più risposte (0)

Categorie

Richiesto:

il 24 Apr 2020

Modificato:

il 24 Apr 2020

Community Treasure Hunt

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

Start Hunting!

Translated by