【问题标题】:Matlab contourf plots interpolationMatlab contourf 绘图插值
【发布时间】:2014-09-04 15:55:31
【问题描述】:

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

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);)图,以消除这些步骤,即结果应该是边界处的平滑曲线。

【问题讨论】:

  • 嗨,当我绘制数据时,它看起来像一个阶梯函数。我希望它是一条曲线。
  • 我怎么能在这里过去一个数字...我是新人**** :)
  • 你能添加你用来绘制数据的代码吗?
  • 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;] 跨度>

标签: matlab contourf


【解决方案1】:

您可以使用 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多