2016-04-26 24 views
-1

ディレクトリ内のファイル名の大きなセットから数字と場合によってはいくつかの文字を読み出す必要があります。ファイル名の形式は "aXXXX_bXX_XX_S.ext"です。ここで、「X」は任意の数字で、「s」は任意の文字または文字列です。これらの数字と文字列を別々のセル配列としてどのように抽出すればよいですか?matlabからファイル名の数字を抽出するには?

ありがとうございます!

+0

ようこそStackOverflow!すでに試したことを私たちに見せてください。今のところ、['strsplit'](http://www.mathworks.com/help/matlab/ref/strsplit.html)や[' strtok'](http://www.mathworks.com/ help/matlab/ref/strtok.htmlを参照してください)。がんばろう! –

+0

[正規表現]が必要です(http://www.mathworks.com/help/matlab/ref/regexp.html?refresh=true)。ドキュメントをチェックし、[regex101](https://regex101.com/)で正しいパターンを見つけ出すことをお勧めします。 – excaza

答えて

0

まず、ディレクトリ内のすべてのファイルを読むことができます。使用、フォルダの場所は、文字列pathに格納されたと仮定すると:

a=dir(mypath); 

は今、あなたは構造aを持っています。ファイル名はa.nameに格納されます。これで作業できます。ここでは非常に大まかなコードです。すべてのファイルをループして、最初の文字がaであるかどうかを確認します(隠しファイルがあるかもしれませんが、必要はありません)。次に、適切なファイルから必要なデータを抽出します。

n=0; 
for i=1:numel(a) 
    if a(i).name(1)=='a' 
     n=n+1; 
     numbers{n}=strcat(a(i).name(2:5),a(i).name(8:9),a(i).name(11:12)); 
     letters{n}=a(i).name(13:find(a(i).name=='.')-1); 

    end 
end 
関連する問題