複数ファイルを開く方法

5 vues (au cours des 30 derniers jours)
Hiroki Takeda
Hiroki Takeda le 27 Avr 2022
Commenté : Hiroki Takeda le 29 Avr 2022
*.ncというnetCDF形式のデータが複数あり,ファイル名が様々です。
F_name=dir('*.nc');
でファイル名は取得しています。
これら複数のデータから,変数名chlor_a(4320×2160)を取り出して処理をすることを考えています。
イメージとしては,file1.ncを開いて,chlor_aを適当な変数に引き渡して,file1.ncを閉じて,file2.ncを開いて...のようなことを考えています。
ただし,ファイル名が1,2,3...のようなものではないので,どのようにして指定しながら.ncひらけば良いかわかりません。
とりあえず、ncreadで1つのファイルをベタ打ちで開いています。
ご教示くださりますと幸いです。よろしくお願いいたします。
clear; close;
F_name=dir('../data/Chlo/*.nc');
varname1 = 'chlor_a';varname2 = 'lon';varname3 = 'lat';
chlo=ncread('../data/Chlo/A20021822002212.L3m_MO_CHL_chlor_a_9km.nc',varname1);
lon=ncread('../data/Chlo/A20021822002212.L3m_MO_CHL_chlor_a_9km.nc',varname2);
lat=ncread('../data/Chlo/A20021822002212.L3m_MO_CHL_chlor_a_9km.nc',varname3);
lon=repmat(lon,1,size(lat,1));lat=repmat(lat',size(lon,1),1);
mvar_all = chlo;

Réponse acceptée

Hernia Baby
Hernia Baby le 27 Avr 2022
構造体から抽出して繰り返しています
clear; close;
F_name=dir('../data/Chlo/*.nc');
varname1 = 'chlor_a';varname2 = 'lon';varname3 = 'lat';
ここでF_nameは構造体ですので F_name(1).name のようにしてデータを取り出します
for文でデータ分繰り返しましょう
for ii = 1:height(F_name)
filename = fullfile(F_name(ii).folder,F_name(ii).name);
chlo=ncread(filename,varname1);
lon=ncread(filename,varname2);
lat=ncread(filename,varname3);
lon1{ii}=repmat(lon,1,size(lat,1));
lat1{ii}=repmat(lat',size(lon,1),1);
mvar_all{ii} = chlo;
end
  1 commentaire
Hiroki Takeda
Hiroki Takeda le 29 Avr 2022
素早くご対応くださり誠にありがとうございます。
勉強させていただきました。

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!