Azzera filtri
Azzera filtri

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

12 visualizzazioni (ultimi 30 giorni)
kamaboko_tarou
kamaboko_tarou il 24 Gen 2023
Risposto: Atsushi Ueno il 24 Gen 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

Risposta accettata

Hernia Baby
Hernia Baby il 24 Gen 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'

Più risposte (1)

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

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!