フォルダ内に対象のデ​ータがあるか検索して​処理を実行したい

8 次查看(过去 30 天)
kamaboko_tarou
kamaboko_tarou 2023-1-24
フォルダ内に画像のようなfig○○○○.figというデータが保存されています。(○○○○は0パディングされた4桁の数字、形式は全て.figです。)データ名の数値は連続ではなく、画像のように飛び飛びの値です。
for文を用いてi = 1 : 1000として、フォルダ内にその数値を含むデータが存在すれば表示し、存在しなければその数値はパスして次の数値について考えるというプログラムを作成したいです。
現時点で作成したコードは次の通りです。
for i = 1:1000
root = 'fig';
name = [root,num2str(i,'%04u'),'.fig']; % データ名
openfig(name); % 存在すれば開く
end

采纳的回答

Hernia Baby
Hernia Baby 2023-1-24
多分 dir 使えば解決すると思います。
試しにmatファイルを作ってみますね
for ii = 1:3:15
a = ii;
save(sprintf("sample%03d.mat",ii),'a');
end
dirを使ってファイルの名前を見てみます
s = dir('sample*.mat');
s.name
ans = 'sample001.mat'
ans = 'sample004.mat'
ans = 'sample007.mat'
ans = 'sample010.mat'
ans = 'sample013.mat'

更多回答(1 个)

Atsushi Ueno
Atsushi Ueno 2023-1-24
try, catch文を入れれば(catch文は不要)「フォルダ内にその数値を含むデータが存在すれば表示し、存在しなければその数値はパスして次の数値について考える」事になります。
for i = 1:1000
root = 'fig';
name = [root,num2str(i,'%04u'),'.fig']; % データ名
try
openfig(name); % 存在すれば開く
end
end

类别

Help CenterFile Exchange 中查找有关 ファイルの操作 的更多信息

产品


版本

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!