这是一个样本数据集。
x = linspace(10,20,50);
y = linspace(10,20,50);
z = cos(linspace(0,2*pi,50));
time = linspace(1,60,50);
sci_temp = randi(100,50,1);
x,y,z是位置,而sci_temp是温度数据。
我想知道如何使用sci_temp数据在xyz位置上绘制轨迹。
我尝试插值数据,所以我用sci_temp图获得2D插值时间与z的关系。
S = TriScatteredInterp(time',z',sci_temp);
[t_mesh z_mesh] = meshgrid(time,z);
tz_mesh = S(t_mesh, z_mesh);
pcolor(t_mesh,z_mesh,tz_mesh)
我想要得到的是xyz 3D图上的2D(时间与sci_temp)截面图。喜欢这张图片。
如何在3D图中显示sci_temp上的轨迹?
有没有人可以帮助我?
谢谢
首先,您所做的插值略有错误,您不想在由以下项创建的网格上进行插值
meshgrid(time,z);
因为它将重复值。您想在由创建的网格上进行插值
meshgrid(time,linspace(min(z),max(z),50));
一旦获得内插值,例如:您可以使用surface
函数将其绘制在3D空间中,只需要确保适当地给出x和y坐标即可
surface(repmat(x,50,1),repmat(y,50,1),zmesh,tzmesh)
您甚至可以使用更复杂的路径,例如,相同的数据但 y=z
编辑:我也忘了提,我建议您使用scatteredInterpolant
而不是TriScatteredInterp
。它使您可以更好地控制插值
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句