- 积分
- 12111
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-8-16
- 最后登录
- 1970-1-1
|
发表于 2021-4-10 21:48:59
|
显示全部楼层
回帖奖励 +2 金钱
本帖最后由 东水兽 于 2021-4-10 21:52 编辑 filelist = dir('*.nc');
len = length(filelist); % 看你代码是有len个变量,这个len能够被12整除
%% 定义需要写入的变量
year = len/12; % 这里假设year不超过100
for i = 1:year
% 为了新变量名称好看一些,十以下的序号我习惯加一个0
% 最后的形式应该是new_varible_01 .... new_varible_10 ...
if i < 10
val = strcat('new_varible_0',num2str(i));
else
val = strcat('new_varible_',num2str(i));
end
% 重新定义year个变量,前两个纬度和原变量是一样的,我这里是假设第一个纬度为lon,第二个纬度为lat
% new_varible_01 = zeros(length(lon),length(lat),12);
eval([val,' = zeros(length(lon),length(lat),12);'])
end
%% 将原数据写入新变量
for i = 1:year
if i < 10
val = strcat('new_varible_0',num2str(i));
else
val = strcat('new_varible_',num2str(i));
end
for j = (i-1)*12+1:(i-1)*12+12
filename = [filelist(j).name];
temdata = ncread(filename,'SoilTMP0_10cm_inst');
% new_varible_01(:,:,j) = temdata(:,:);
eval([val,'(:,:,j) = temdata(:,:);'])
end
end
不知道这样可以么
|
|