为什么八度输出 $ g = [.. ..] $



当我运行这段代码时(在 Coursera 的编程作业中(:

J = 1/m * [-y.*log(sigmoid((theta)'*X))-(1-y).*log(1-sigmoid((theta)'*X))]

其中m = length(y)y 是 m 维向量,X 是 m*2 矩阵,theta = 0.1 、 倍频程输出:

g =
   [long (#rows)*2 matrix, each entry <1 but extremely close to 1]
g =
   [another long (#rows)*2 matrix as before]
J = 
   [(#rows)*2 matrix with entries such as 3.4932e-002 and 7.8914e-005]

什么是g?我从未定义过它,它也没有出现在我的代码中,但输出了一些看似无关的数字?(我知道函数本身可能有问题,但这是一个与我在这里感兴趣的问题不同的问题。我想,如果我知道g是什么,我也许能够更好地进行故障排除。如果您对该功能有任何意见,请随时指出问题所在。

只要您有一个语句(在函数内部或其他方式(不以分号结尾,该语句的输出将显示在终端上。

假设这是您正在运行的唯一代码,那么我的猜测是,在您的sigmoid函数中有一个这样的语句:

g = dosomething()   % note: not semicolon terminated!

导致在执行期间出现终端输出。

终端中报告两次g的事实也是有意义的,因为您在刚刚编写的表达式中调用了两次sigmoid函数。

另外,为了清楚起见,请不要将单行代码称为函数,因为这在编程上下文中意味着完全不同的东西。

相关内容

  • 没有找到相关文章

最新更新