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 comentarios

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

Iniciar sesión para comentar.

 Respuesta aceptada

Tommy
Tommy el 24 de Abr. de 2020
Editada: Tommy el 24 de Abr. de 2020

1 voto

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

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 24 de Abr. de 2020

Editada:

el 24 de Abr. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by