[theta , J] = gradientDescent(X , Y , theta , alpha , iteratons);
theta , J = gradientDescent(X , Y , theta , alpha , iterations);
运行上述两个陈述给了我不同的结果。第一个给了我想要的,但第二个没有。为什么呢?
修改
这是函数的声明:
function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters)
答案 0 :(得分:3)
要从函数指定多个输出,必须用[]
括起输出参数。您提供的第二个语句只会显示theta
的值,并将gradientDescent
的第一个输出分配给J
为了举个例子:
a = 1
a, b = rand(10)
相当于
a = 1
a
b = rand(10)
如果你想要一个函数的两个输出参数,你必须将它们包含在[]
中,以便它们都被分配。
[theta , J] = gradientDescent(X , Y , theta , alpha , iteratons);