2014-09-04 370 views
0

嗨如果我有這樣的數據例如Matlab contourf圖插值

x=[1:1:7]; 
y=[5:-1:1]'; 
z=[NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN 
0.955113030084974 0.948571658876062 0.942624899410361 NaN NaN NaN NaN 
0.937493758208870 0.928392864395896 0.920119550965773 0.910466888808695 0.901586502842837 0.892741292179595 NaN 
0.879644551679863 0.862126561405869 0.846200299426160 0.827622958701087 0.810531605135333 0.793507569055583 0.775604152867929 
]; 

我想產生擺脫的步驟,即結果應該是在邊界平滑曲線contourf(即contourf(x,y,z);)的情節。

+0

嗨,當我繪製數據時,它看起來像一個階梯函數。我喜歡它是一條曲線。 – 2014-09-04 16:05:13

+0

我怎樣才能在這裏過一個數字......我是新的**** :) – 2014-09-04 16:05:38

+0

您可以添加您用來繪製數據的代碼嗎? – Trogdor 2014-09-04 16:10:05

回答

0

您可以使用imagesc代替,但是有如此嚴酷的步驟的原因是您沒有足夠的數據點。爲了改變這種情況,一種選擇是在你擁有的內容之間插入更多的數據點。

x=[1:1:7]; 
y=[5:-1:1]'; 
z=[NaN NaN NaN NaN NaN NaN NaN 
    NaN NaN NaN NaN NaN NaN NaN 
    0.955113030084974 0.948571658876062 0.942624899410361 NaN NaN NaN NaN 
    0.937493758208870 0.928392864395896 0.920119550965773 0.910466888808695 0.901586502842837 0.892741292179595 NaN 
    0.879644551679863 0.862126561405869 0.846200299426160 0.827622958701087 0.810531605135333 0.793507569055583 0.775604152867929]; 

xn = 1:.01:7; 
yn = [5:-.01:1]'; 
zn = interp2(x,y,z,xn,yn); 
imagesc(xn,yn,zn);