2

ディレクトリ内のファイル名には 2 つのパターンがあります。

パターン 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' です。

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 に答える