使用matlab在特定目录中的文件名

时间:2015-03-09 07:29:29

标签: matlab

我想在特定目录中找到文件的名称。我知道dir命令返回文件名,但它包含文件名及其扩展名。因此,我使用strfind删除文件的扩展名,如下所示:

a = dir(fullfile(dataset_path, [dataset_category '\qrel']))
for i= 3: length(a)
  name{i} =  a(i).name(1:strfind(a(i).name, '.')-1)

我想要一个没有循环的更好的方法。我想知道这是一种为此目的使用矢量化的方法。我使用了以下代码,但它返回错误

a = dir(fullfile(dataset_path, [dataset_category '\qrel']))
name = a.name(1:strfind(a.name, '.')-1)

1 个答案:

答案 0 :(得分:1)

你可以用正则表达式来做到这一点:

name = regexprep({a.name}, '\.[^\.]*$', '');

这会收集单元格数组中的所有名称({a.name})。对于每个字符串,它匹配一个点(\.),后跟字符串末尾([^\.]*)以外的零点或多个字符($),并删除它。感谢@Shai的“除了点”修正,这确保只有最后一个点匹配。