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

22 visualizzazioni (ultimi 30 giorni)
Hiroki Takeda
Hiroki Takeda il 7 Apr 2022
Commentato: Hiroki Takeda il 8 Apr 2022
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月のデータを開くことができません。
上記のような形をベースに考えたいと思っていますが,どのようにすればよろしいでしょうか。
よろしくお願いいたします。

Risposta accettata

Hernia Baby
Hernia Baby il 7 Apr 2022
もしフォルダ内にファイル一式がある場合は
tmp = dir('*.nc4');
fname = {tmp.name};
みたいにすれば名前が一気に取得できると思います。
以下参考になります
  4 Commenti
Akira Agata
Akira Agata il 7 Apr 2022
+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 il 8 Apr 2022
すぐの返信をいただきありがとうございました。無事にできました。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLAB 入門 in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!