0

嗨,如果我有这样的数据,例如

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);

4

1 回答 1

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);
于 2014-09-04T19:18:27.760 回答