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

조회 수: 7 (최근 30일)
kamaboko_tarou
kamaboko_tarou 2023년 1월 24일
답변: Atsushi Ueno 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!