2013-02-14 114 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