2013-02-14 85 views
2

我有3个矩阵(129x129)对应于x,y和z坐标。我用功能网格Matlab 3D插值

mesh(x,y,z); 

来绘制相应的图。它变成一个球体。现在,我有另一组x,y,z(同样是129),它给出了一个不同的球体。我想要的是在MATLAB中使用插值来获得之间的数字。我在MATLAB中查看了函数interp3,但无法弄清楚如何处理它。

+1

如果你的问题确实是指表面进化,而不是插值,如果相应地编辑标题,标签和问题,这将是最好的,所以其他人将能够访问它更容易。 – Shai 2013-02-14 18:38:39

回答

4

好像你感兴趣的表面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 
+0

谢谢谢。我如何看到同一图表中的两个数字? – pikachu 2013-02-14 16:55:53

+0

@ksingh您可以使用'subplot'来查看同一图中的几张图 – Shai 2013-02-14 18:12:15

+0

@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