我的程序创建2D矢量图,用于在3D空间中对风数据进行建模。我想知道如何在这些2D工作表之间进行插值。 X和Y值不会变化,因为它们对应于保持静态的纬度/经度值。矢量的W分量设置为0,只留下矢量的U / V分量在Z范围内插值,Z范围对应于两个2D矢量图之间的Z距离。
我已经阅读了interp3,但我不确定它是否适用于我正在尝试做的事情。如果你能对此有所帮助,我会非常感激,谢谢。
注意:我删除了一个与我之前提出的问题类似的问题,因为我认为我的问题过于复杂,从而使其他人有可能帮助回答这个问题。
感谢您的帮助,如果我能提供更多信息,请与我们联系!
答案 0 :(得分:1)
这是我的代码,可以在两张Z张之间插入任意数量的不同电台。我相信它可以被重写为包含interp1()函数中的所有Z表。希望这能让你朝着正确的方向前进。
zLevels = 5; %number of interpolated points between z50 and z75
nStation = 100; %number of (lat,long) pairs to interpolate
for i = 1:nStation %for nStation different (lat, long) pairs generate interp. values
% generate zQuery points between z50 and z75 for each station
zQuery = ((1:zLevels)/zLevels)*range([z50mb_vec(i) z75mb_vec(i)]) + z75mb_vec(i);
% use interp1 to interpolate about the Z axis for U component
U(i,1:zLevels) = interp1([z50mb_vec(i) z75mb_vec(i)],[UwindVec50mb(i) UwindVec75mb(i)],zQuery);
% and for V component
V(i,1:zLevels) = interp1([z50mb_vec(i) z75mb_vec(i)],[VwindVec50mb(i) VwindVec75mb(i)],zQuery);
end
% defining some color codes for each zLevel, otherwise the plot is a mess
% of colors
colorcode = ['r' 'g' 'b' 'm' 'c' 'r' 'g' 'b' 'm' 'c' 'r'];
for j = 1:nStation
for i = 1:zLevels
quiver3(lat_value(j), long_value(j), zQuery(i), U(j,i), V(j,i), 0, colorcode(i));
hold on;
end
end
生成的图(z50数据为蓝绿色,z75为红色,否则为内插图):