我有3个矩阵(129x129)对应于x,y和z坐标。我用功能网格Matlab 3D插值
mesh(x,y,z);
来绘制相应的图。它变成一个球体。现在,我有另一组x,y,z(同样是129),它给出了一个不同的球体。我想要的是在MATLAB中使用插值来获得之间的数字。我在MATLAB中查看了函数interp3
,但无法弄清楚如何处理它。
我有3个矩阵(129x129)对应于x,y和z坐标。我用功能网格Matlab 3D插值
mesh(x,y,z);
来绘制相应的图。它变成一个球体。现在,我有另一组x,y,z(同样是129),它给出了一个不同的球体。我想要的是在MATLAB中使用插值来获得之间的数字。我在MATLAB中查看了函数interp3
,但无法弄清楚如何处理它。
好像你感兴趣的表面z(x,y)
的演变从一个表面z0
到另一个z1
。我建议以下过程
T = 5; % number of "time steps" from z0 to z1
t = linspace(0, 1, T);
for ii = 1 : T
zt = t(ii).*z1 + (1-t(ii)).*z0;
mesh(x, y, zt); title(sprintf('time %d', ii));
drawnow;
pause(1); wait a sec
end
谢谢谢。我如何看到同一图表中的两个数字? – pikachu 2013-02-14 16:55:53
@ksingh您可以使用'subplot'来查看同一图中的几张图 – Shai 2013-02-14 18:12:15
@ksingh BTW我假设底层的'x'和'y'不随时间变化。如果不是这种情况,你可能想用'x'和'y'做同样的技巧:xt = t(ii)。* t1 +(1-t(ii)),* t0;'和'yt = t(ii)。* y1 +(1-t(ii))。* y0;'然后'subplot(2,3,ii); mesh(xt,yt,zt) – Shai 2013-02-14 18:14:07
如果你的问题确实是指表面进化,而不是插值,如果相应地编辑标题,标签和问题,这将是最好的,所以其他人将能够访问它更容易。 – Shai 2013-02-14 18:38:39