Matlab contourf绘制插值

时间:2014-09-04 15:55:31

标签: 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);)情节,摆脱步骤,即结果应该是边界处的平滑曲线。

1 个答案:

答案 0 :(得分: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);