Matlab \ Octave没有与contourf相同的结果

时间:2014-10-21 14:08:20

标签: matlab octave contourf

我在八度音中使用contourf有问题 如果我在octave和matlab中测试以下代码,结果就完全没有了。 Matlab的结果很好。

A1=[38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100
    38    44    51    58    65    72    79    86    93   100]

B1=[ 1     1     1     1     1     1     1     1     1     1
    12    12    12    12    12    12    12    12    12    12
    23    23    23    23    23    23    23    23    23    23
    34    34    34    34    34    34    34    34    34    34
    45    45    45    45    45    45    45    45    45    45
    56    56    56    56    56    56    56    56    56    56
    67    67    67    67    67    67    67    67    67    67
    78    78    78    78    78    78    78    78    78    78
    89    89    89    89    89    89    89    89    89    89
   100   100   100   100   100   100   100   100   100   100]

C1=[NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN
    NaN    687    585    865   1045   1283   2465   2661   3042    NaN
    NaN    356    390    426    473    519    574    627   1253    NaN
    NaN    330    334    330    377    423    455    502    583    NaN
    NaN    305    314    330    348    369    395    430    458    NaN
    NaN    NaN    299    306    323    345    366    389    420    NaN
    NaN    NaN    294    302    310    323    340    364    396    NaN
    NaN    NaN    NaN    295    301    314    326    345    371    NaN
    NaN    NaN    NaN    NaN    297    306    318    334    351    NaN
    NaN    NaN    NaN    NaN    NaN    NaN    NaN    NaN    345    NaN]

[c,h]=contourf(A1,B1,C1,[200,300,400,500,600])

有人可以解释为什么八度音提供的结果与预期不同吗?

1 个答案:

答案 0 :(得分:0)

这是known bug。 使用八度音程3.8.2得到的图像是 wrong result

正如评论#2中所述,解决方法是将NaN更改为-inf,以便关闭轮廓。

确实,

C1(isnan(C1)) = -inf;
[c,h]=contourf(A1,B1,C1,[200,300,400,500,600])
情节看起来更好。

enter image description here