Matlab\Octave haven';与contourf的结果不同
我在八度音阶中使用contourf时遇到问题。Matlab\Octave haven';与contourf的结果不同,matlab,octave,contourf,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
如果我在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])
有人能解释为什么八度音阶的结果与预期的不同吗?这是一个很好的解释。
对于倍频程3.8.2,生成的图像是
如注释2所述,解决方法是将NaN
更改为-inf
,以关闭轮廓
事实上,与
C1(isnan(C1)) = -inf;
[c,h]=contourf(A1,B1,C1,[200,300,400,500,600])
情节看起来更好
您是否比较了matlab和octave中
contourf
的功能描述?也许它们应该以稍微不同的方式使用。在倍频程中,它会返回一个错误:error:\uu轮廓\uuu:下标索引必须是小于2^3 1的正整数或逻辑值。这是因为你有一些NaN
。您应该去掉它们。@am304和octave 3.8.2没有错误。你的版本是什么?最好1)在你的问题中包含matlab图像,2)提供一个可以轻松复制/粘贴的完整工作代码。例如,在A1=
之后应该没有换行符。代码现在可以被复制/粘贴到onderful,就是这样,我不知道这个bug,但答案是好的。谢谢