複数ファイルを開く方法

조회 수: 4 (최근 30일)
Hiroki Takeda
Hiroki Takeda 2022년 4월 27일
댓글: Hiroki Takeda 2022년 4월 29일
*.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;

채택된 답변

Hernia Baby
Hernia Baby 2022년 4월 27일
構造体から抽出して繰り返しています
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
Hiroki Takeda
Hiroki Takeda 2022년 4월 29일
素早くご対応くださり誠にありがとうございます。
勉強させていただきました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

태그

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!