我进入了这个
contour(theta0_vals, theta1_vals , J_vals,logspace(-2,3,20));
Octave告诉我这个错误。
error: axis: LIMITS(1) must be less than LIMITS(2)
error: called from
axis>__axis__ at line 313 column 9
axis at line 155 column 7
__contour__ at line 198 column 5
contour at line 74 column 16
答案 0 :(得分:0)
contour
函数计算轮廓,然后创建一个图形来显示它们。
当它创建图形时,它会尝试从每个维度中网格的最小值和最大值自动设置轴限制(这发生在轮廓 .m的第198行,根据报告的错误)。
如果特定维度中网格的大小是单数,则最小值和最大值是相同的数字,这会在尝试显示时导致错误,因为您无法为绘图指定轴宽度0或表面上。
观察:
>> [X, Y] = ndgrid(0, -5:5); % X results in a 1x11 vector
>> contour(X,Y,Y)
error: axis: LIMITS(1) must be less than LIMITS(2)
error: called from
axis>__axis__ at line 313 column 9
axis at line 155 column 7
__contour__ at line 198 column 5
contour at line 74 column 16
因此,您的theta0_vals
或theta1_vals
变量在一个维度上是标量或单数。这无论如何都不能用作网格,所以要么这是一个但是,或者如果这是预期的行为,你可能不得不重新考虑你在这里做的事情。