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

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

Réponse acceptée

Hernia Baby
Hernia Baby le 24 Jan 2023
多分 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'

Plus de réponses (1)

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

Catégories

En savoir plus sur ファイルの操作 dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!