如何在Matlab中获取文件夹中的文件名结构

时间:2016-05-23 08:26:59

标签: regex string matlab filenames matlab-guide

我正在使用Matlab设计GUI,

我有一个名为filename_1_something.mat filename_2_something.mat 的文件夹。它包含许多具有相同结构的文件,如

filename_%d_something.mat

为了通过选择via index来遍历文件名,我需要找到这样的结果字符串;

%d

所以我不需要读取目录中的所有文件。其中两个文件名足以比较字符串并找到不同的char数组项并按$_SERVER更改。

或者与此不同的任何事情也表示赞赏。

1 个答案:

答案 0 :(得分:1)

使用@ rock321987提供的正则表达式 -

 names = dir('*.mat');
 num = length(names);
 expression = '\w*_\d+_\w*\.mat';
 for n = 1:num
    str = names(n).name;
    nameList{n} = regexp(str,expression,'match')
 end

适用于:

test_1_something.mat
test_10_something.mat

将正则表达式更改为\w*_\w*\.mat

适用于

test_1.mat
1_test.mat
test_1_something.mat
test_10_something.mat

但也可以用于由下划线连接的字符串.mat