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

6 Ansichten (letzte 30 Tage)
kamaboko_tarou
kamaboko_tarou am 24 Jan. 2023
Beantwortet: Atsushi Ueno am 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

Akzeptierte Antwort

Hernia Baby
Hernia Baby am 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'

Weitere Antworten (1)

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

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!