2017-04-10 8 views
0

ディレクトリ内のファイル名のみにアクセスするにはどうすればよいですか?MATLABを使用してディレクトリ内のファイル名のみを反復する

>> files = dir('*.png'); 
>> disp(class(dir('*.png'))) 
struct 
>> fields 

fields = 

    'name' 
    'date' 
    'bytes' 
    'isdir' 
    'datenum' 

>> for i=1:numel(fields) 
files.(fields{i}.name) 
end 
Struct contents reference from a non-struct array object. 

>> for i=1:numel(fields) 
files.(fields{i}).name 
end 
Expected one output from a curly brace or dot indexing expression, but there were 11 results. 

答えて

3

ファイル名は、dirによって返される構造体配列のフィールドnamesにあります。だから、:

files = dir('*.png'); 
for k = 1:numel(files) 
    f = files(k).name; % f contains the name of each file 
end 
+0

forループの代わりに、 '名= {files.name}を使って、ストレートセル配列に抽出することである;'あなたはその後、_cellfun_使用することができるため、ファイルを反復処理するために必要なものに応じて、各ファイル名をループします。 – Adrian

2

あなたはcharsの代わりcellsで動作しますlsls

このような
list=ls('*.png'); 
for ii=1:size(list,1) 
    s = strtrim(list(ii,:)); % a string containing the name of each file 
end 

を使用することができます。

関連する問題