%风场
m_var=51;
n_var=51;
T_fengchang=3600;%风场周期
T_yantuan1=30;
T_U=24*3600/T_fengchang;
T_fengchang1=6;
T_fengchang2=10;
T_fengchang3=T_U+1;
U_fengxiang=[linspace(37,37,T_fengchang1),linspace(37,37,T_fengchang2-T_fengchang1),...
linspace(37,37,T_fengchang3-T_fengchang2)]';
U_fengxiang=deg2rad(U_fengxiang);
U_fengshu=[linspace(5,5,T_fengchang1),linspace(5,5,T_fengchang2-T_fengchang1),...
linspace(5,5,T_fengchang3-T_fengchang2)]';
U_x0 = U_fengshu.*cos(U_fengxiang);%平均风速
U_y0 = U_fengshu.*sin(U_fengxiang);%平均风速
U_x=kron(U_x0,ones(m_var-1,n_var-1));%原始观测数据风场
U_y=kron(U_y0,ones(m_var-1,n_var-1));
U_z=kron(ones(1,T_U+1)',0*rand(m_var-1,n_var-1));
U_x=reshape(U_x,m_var-1,T_U+1,n_var-1); U_x=permute(U_x,[1,3,2]);%将风场按时间排列
U_y=reshape(U_y,m_var-1,T_U+1,n_var-1); U_y=permute(U_y,[1,3,2]);%将风场按时间排列
U_z=reshape(U_z,m_var-1,T_U+1,n_var-1); U_z=permute(U_z,[1,3,2]);%将风场按时间排列
U_x11=zeros(m_var,n_var,24*3600/30);U_y11=zeros(m_var,n_var,24*3600/30);U_z11=zeros(m_var,n_var,24*3600/30);%
%根据每个坐标点的24小时风速,进行精密插值
for i=1:m_var-1
for j=1:n_var-1
U_x11(i,j,:)=interp1(1:T_U+1,reshape(U_x(i,j,:),1,T_U+1),1:T_yantuan1/T_fengchang:T_U+1-T_yantuan1/T_fengchang,'linear');%对每个小时的风场进行插值
U_y11(i,j,:)=interp1(1:T_U+1,reshape(U_y(i,j,:),1,T_U+1),1:T_yantuan1/T_fengchang:T_U+1-T_yantuan1/T_fengchang,'linear');
U_z11(i,j,:)=interp1(1:T_U+1,reshape(U_z(i,j,:),1,T_U+1),1:T_yantuan1/T_fengchang:T_U+1-T_yantuan1/T_fengchang,'linear');
end
end
代码如上,主要是如何避免双重for循环??加快运算速度?除了使用parfor外,还有没有更好的方法了。谢谢大家。