matlab 4D插值图

时间:2016-08-09 12:23:55

标签: matlab plot interpolation 4d

这是一个示例数据集。

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插值时间vs 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)

result

我想得到的是xyz 3D图上的2D(时间与sci_temp)剖面图。喜欢这张图片。

result

如何在3D绘图中显示sci_temp上的轨迹?

有人可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:1)

首先,你的插值略有错误,你不想在

创建的网格上进行插值
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。它使您可以更好地控制插值