Convert cell array to character array including string manipulation

10 次查看(过去 30 天)
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

采纳的回答

madhan ravi
madhan ravi 2019-1-20
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)

更多回答(1 个)

madhan ravi
madhan ravi 2019-1-20
Simpler:
R=regexp(s,'(?<=\\)\w+(?=[.])','match'); % s is your cell array
Result=string(R)
  2 个评论
Florian
Florian 2019-1-20
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 2019-1-20
编辑:madhan ravi 2019-1-20
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"

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by