Re: [讨论] 同算试 在function跟main算出来的不一样

楼主: celestialgod (天)   2016-06-12 18:08:56
※ 引述《andysleep (Maydayisgod)》之铭言:
: 大家好! 小弟遇到一个很奇怪的问题
: 这是main
: clear all
: theta=[14.154989916158062;0.539122655828177];
: X=[-15.9367581337854;-29.1529792172381;36.1895486266625];
: y=[2.13431050672967;1.17325667875646;34.3591091805390];
: m = length(y);
: for i=1:m
: error_train1(i) = 1/(2*m)*sum(([ones(i , 1) X(1:i, :)]*theta-y(1:i)).^2)
这里的m是y的长度是m,以你例子来说,就是3。
: error_train(i) = CostFunction([ones(i , 1) X(1:i, :)],y(1:i),theta)
每一次input的Y,长度都会改变
所以子函数里面的m等于i,因此,答案会不一样
: end
: 这是function
: function J=CostFunction(X,Y,theta)
: m=length(Y);
: J=0;
: J=1/(2*m)*(sum((X*theta-Y).^2));
: end
这里的m是Y的长度,所以是i
: 算出来的答案竟然不一样
: error_train1 =
: 1.9595 3.2064 3.2866
: error_train =
: 5.8784 4.8097 3.2866
: 请问是哪里出错了 看了一整天还是看不出来 麻烦帮忙解答 感谢
作者: andysleep (Maydayisgod)   2016-06-12 18:27:00
太感谢了 竟然没看出来
作者: name0625 (lawpy)   2016-06-12 21:06:00
啊,没看到c大解决了

Links booklink

Contact Us: admin [ a t ] ucptt.com