2

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

模式一:

'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”。

4

3 回答 3

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功能。

于 2013-09-20T18:51:46.297 回答
3

这将返回名称中带有特定通配符的所有文件

file_list_1 = dir(fullfile(directory_path, '*FixedVolume*.mat'))
file_list_2 = dir(fullfile(directory_path, '*FixedCost_zz123*.mat'))
于 2013-09-20T18:53:11.960 回答
0

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

另请参阅“匹配”或“令牌”选项

于 2013-09-20T18:59:30.620 回答