Convert cell array to character array including string manipulation

10 visualizaciones (últimos 30 días)
Hi all,
I have a n*1 cell array where each value is a combination of drive letter, folder path and file name and file extension such as:
{'C:TEMP\filename1.ext'}
{'C:TEMP\filename2.ext'}
{'C:TEMP\filename3.ext'}
...
Each row has a unique file name as shown above.
Now I would like to convert this cell array into a character array where each string is reduced to the file name only withouth path and file extension:
'filename1'
'filename2'
'filename3'
...
Does anybody know how to accomplish this?
Best regards,
Florian

Respuesta aceptada

madhan ravi
madhan ravi el 20 de En. de 2019
R=cell(size(s)); % s is your cell array
for k=1:numel(s)
S=strsplit(s{k},{'\','.'});
R{k}=S{2};
end
Result=string(R)

Más respuestas (1)

madhan ravi
madhan ravi el 20 de En. de 2019
Simpler:
R=regexp(s,'(?<=\\)\w+(?=[.])','match'); % s is your cell array
Result=string(R)
  2 comentarios
Florian
Florian el 20 de En. de 2019
Hi Madhan,
the result of this operation is indeed a character array, but it is only filled with '1' in each cell.
madhan ravi
madhan ravi el 20 de En. de 2019
Editada: madhan ravi el 20 de En. de 2019
What do you mean ? see the example below:
s=cell(3,1);
s{1}='C:TEMP\filename1.ext';
s{2}='C:\TEMP\filename2.ext';
s{3}='C:TEMP\filename3.ext';
R=regexp(s,'(?<=\\)\w+(?=[.])','match');
Result=string(R)
Gives:
Result =
3×1 string array
"filename1"
"filename2"
"filename3"

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by