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

22 ビュー (過去 30 日間)
Hiroki Takeda
Hiroki Takeda 2022 年 4 月 7 日
コメント済み: Hiroki Takeda 2022 年 4 月 8 日
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 日
もしフォルダ内にファイル一式がある場合は
tmp = dir('*.nc4');
fname = {tmp.name};
みたいにすれば名前が一気に取得できると思います。
以下参考になります
  4 件のコメント
Akira Agata
Akira Agata 2022 年 4 月 7 日
+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 件)

カテゴリ

Help Center および File ExchangeMATLAB 入門 についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!