如何在Matlab中获取文件夹中的文件名结构
How to get filename structure in a folder in Matlab
我正在用 Matlab 设计 GUI,
我有一个名为 sth
的文件夹。它包含许多具有相同结构的文件,例如
filename_1_something.mat
filename_2_something.mat
为了通过索引选择来遍历文件名,我需要找到这样的结果字符串;
filename_%d_something.mat
所以我不需要读取目录中的所有文件。两个文件名足以比较字符串并找到不同的 char 数组项并更改 %d
。
或任何与此不同的东西也很感激。
使用@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
我正在用 Matlab 设计 GUI,
我有一个名为 sth
的文件夹。它包含许多具有相同结构的文件,例如
filename_1_something.mat
filename_2_something.mat
为了通过索引选择来遍历文件名,我需要找到这样的结果字符串;
filename_%d_something.mat
所以我不需要读取目录中的所有文件。两个文件名足以比较字符串并找到不同的 char 数组项并更改 %d
。
或任何与此不同的东西也很感激。
使用@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