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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Tommy
Tommy am 24 Apr. 2020
Bearbeitet: Tommy am 24 Apr. 2020

1 Stimme

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'}

Weitere Antworten (0)

Kategorien

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

Gefragt:

am 24 Apr. 2020

Bearbeitet:

am 24 Apr. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by