Convert cell array to character array including string manipulation

15 vues (au cours des 30 derniers jours)
Florian
Florian le 20 Jan 2019
Modifié(e) : madhan ravi le 20 Jan 2019
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

Réponse acceptée

madhan ravi
madhan ravi le 20 Jan 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)

Plus de réponses (1)

madhan ravi
madhan ravi le 20 Jan 2019
Simpler:
R=regexp(s,'(?<=\\)\w+(?=[.])','match'); % s is your cell array
Result=string(R)
  2 commentaires
Florian
Florian le 20 Jan 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 le 20 Jan 2019
Modifié(e) : madhan ravi le 20 Jan 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"

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by