複数のファイルを読み込む方法について

data_2000_0115.nc4,data_2000_0215.nc4,data_2000_0315.nc4,...,data_2000_1015.nc4,data_2000_1115.nc4,data_2000_1215.nc4
data_2001_0115.nc4,data_2001_0215.nc4,data_2001_0315.nc4,...,data_2001_1015.nc4,data_2001_1115.nc4,data_2001_1215.nc4
...があります(1~12月,2000年以降の1ヶ月ごとのnetcdfデータ)。
このように,複数あるファイルを変数だけ取り出して閉じて,またファイルを開けて...という繰り返しを行いたい時にどのようにすればよろしいでしょうか。
numfiles=9;
for k=1:numfiles
filename=sprintf('data_2000_0%d15.nc4',k)
end
上記のままだと%dに入るのが9までしかできず,10~12月のデータを開くことができません。
上記のような形をベースに考えたいと思っていますが,どのようにすればよろしいでしょうか。
よろしくお願いいたします。

 采纳的回答

Hernia Baby
Hernia Baby 2022-4-7

0 个投票

もしフォルダ内にファイル一式がある場合は
tmp = dir('*.nc4');
fname = {tmp.name};
みたいにすれば名前が一気に取得できると思います。
以下参考になります

4 个评论

Hernia Baby
Hernia Baby 2022-4-7
编辑:Hernia Baby 2022-4-7
後の繰り返し処理は操作方法によりますが、cell型なので cellfun で一気に処理するとかですかね
ちなみにどうしてもsprintfでやりたいんじゃいって場合は条件分けしてください
numfiles=15;
for k=1:numfiles
if k < 10
filename=sprintf('data_2000_0%d15.nc4',k)
else
filename=sprintf('data_2000_%d15.nc4',k)
end
end
filename = 'data_2000_0115.nc4'
filename = 'data_2000_0215.nc4'
filename = 'data_2000_0315.nc4'
filename = 'data_2000_0415.nc4'
filename = 'data_2000_0515.nc4'
filename = 'data_2000_0615.nc4'
filename = 'data_2000_0715.nc4'
filename = 'data_2000_0815.nc4'
filename = 'data_2000_0915.nc4'
filename = 'data_2000_1015.nc4'
filename = 'data_2000_1115.nc4'
filename = 'data_2000_1215.nc4'
filename = 'data_2000_1315.nc4'
filename = 'data_2000_1415.nc4'
filename = 'data_2000_1515.nc4'
+1
sprintf に若干補足です。
以下のようにすると条件分けしなくてもファイル名を生成することができます。
( %02d は、先頭ゼロパディングで2桁の整数として出力することを表しています)
numfiles = 12;
for k = 1:numfiles
filename = sprintf('data_2000_%02d15.nc4', k)
end
filename = 'data_2000_0115.nc4'
filename = 'data_2000_0215.nc4'
filename = 'data_2000_0315.nc4'
filename = 'data_2000_0415.nc4'
filename = 'data_2000_0515.nc4'
filename = 'data_2000_0615.nc4'
filename = 'data_2000_0715.nc4'
filename = 'data_2000_0815.nc4'
filename = 'data_2000_0915.nc4'
filename = 'data_2000_1015.nc4'
filename = 'data_2000_1115.nc4'
filename = 'data_2000_1215.nc4'
Hiroki Takeda
Hiroki Takeda 2022-4-8
すぐの返信をいただきありがとうございました。無事にできました。

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

产品

标签

Community Treasure Hunt

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

Start Hunting!