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 Comments

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

Sign in to comment.

 Accepted Answer

Tommy
Tommy on 24 Apr 2020
Edited: Tommy on 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'}

More Answers (0)

Categories

Asked:

on 24 Apr 2020

Edited:

on 24 Apr 2020

Community Treasure Hunt

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

Start Hunting!