1

この質問はdir、matlab のコマンドに関するものです。

前文

ファイルのセットがあります: 01.dat、、、... 02.dat、。command line: と入力すると、すべてのファイルが表示されます。[01-09] の範囲内の特定のファイルのみを選択する場合は、.03.dat20.datdir('*.dat')dir('0*.dat')

質問

特定の範囲内にあるファイルのみを選択する必要があるとします: 03.dat, 04.dat, 05.dat, 06.dat. どうすればそれを行うことができdirますか?

のようなものが必要ですdir('0[3:6].dat')a=dir('*.dat'); a(3:6).name;データセットに関連するいくつかの理由により、使用を避けたいです。そこで、「dir」コマンドのみのレベルで任意の範囲を指定したい。助言がありますか?よろしくお願いします!

4

2 に答える 2

4

MATLAB で正規表現を使用して、必要なものを除外できます。完璧ではありませんが、まともな結果が得られます。

次のコードは、03.dat、04.dat、05.dat、06.dat ファイルを引き出します。

listing = dir('*.dat');
pattern = '0[3-6].dat';

% this is kind of crude, but works: use regexp then pull out all the
% non-matching ones with a call to isempty(...)
notMatching = cellfun(@isempty, regexp({listing.name}, pattern))

% Pull out the the ones that match:
betterListing = listing(~notMatching)
于 2013-09-09T19:55:00.223 に答える