Matlab查找名称中包含文本的所有文件

时间:2013-09-20 18:43:57

标签: matlab

我的目录中有两种命名文件模式。

模式1:

'XXXXXX FixedCost_zz123.mat'

模式2

'XXXXXX FixedVolume.mat'

因此,基于上面我的文件夹中的一些实际文件示例是:

'Sap FixedCost_pkz123.mat'
'ASDFG FixedCost_z1.mat'
'TUP112RA FixedCost_h1453.mat'
'as FixedVolume.mat'
'P1234L FixedVolume.mat'
'afg FixedVolume.mat'

我希望能够根据我在任何实例中需要的内容找到'FixedCost'和'FixedVolume'类型的所有文件。我该如何实现这一目标?我对函数的输入可能是'FixedCost'或'FixedVolume'。

3 个答案:

答案 0 :(得分:5)

您可以将dir函数与指定文件名模式的参数一起使用:

fixedCostFiles = dir('*FixedCost*.mat');
fixedVolumeFiles = dir('*FixedVolume.mat');

如果你想要更复杂的选择并且不怕java,你也可以使用apache FileUtils,它们是MATLAB的java的一部分:

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html

具体来说,请检查listFiles功能。

答案 1 :(得分:2)

这将返回名称为

的特定通配符的所有文件
file_list_1 = dir(fullfile(directory_path, '*FixedVolume*.mat'))
file_list_2 = dir(fullfile(directory_path, '*FixedCost_zz123*.mat'))

答案 2 :(得分:0)

如果你需要更复杂的东西,那么matlab有正则表达式 http://www.mathworks.com/help/matlab/ref/regexp.html

还可以看到“匹配”或“令牌”选项