用墨组词:有段代码,不知道哪错了!高手帮忙!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/13 10:46:43
function outnum=sjnet(s,n) s=s'; [l,k]=size(s); m=k-n; x=s(1,1:n); t=s(1,n+1:k); w1=rand(n,n)/10; w2=rand(n,m)/10; ws1=w1; ws2=w2; for shun=1 :l %训练个数 x=s(shun,1:n); t=s(shun,n+1:k); for i = 1:n%初始输出值 y(i)=1/(1+exp(-1*sum(x.*w1(:,i)'))); end for i = 1:m o(i)=1/(1+exp(-1*sum(y.*w2(:,i)'))); end e=100; while e<0.1 %当误差小于 0.1 时停止计算 wss1=w1; wss2=w2; for j=1:m%迭代进行权值调整 tao2(j)=o(j)*(1-o(j))*(t(j)-o(j)); for i =1:n w2(i,j)=w2(i,j)+0.01*y(i)*tao2(j)%output end end for j=1:n tao1(j)=y(j)*(1-y(j))*sum(tao2.*w2(j,:)); for i =1:n w1(i,j)=w1(i,j)+0.01*x(i)*tao1(j)%yinceng end end ws1=w1 ws2=w2 for i = 1:n %重新对输出值赋值 y(i)=1/(1+exp(-1*sum(x.*ws1(:,i)'))); end for i = 1:m o(i)=1/(1+exp(-1*sum(y.*ws2(:,i)'))); end e=max(abs(o-t));%得到误差 end end outnum=o; e p =1.0e+004 *[ 0.4860 0.1545 0.2048 0.0256 0.5302 0.1762 0.2162 0.0199 0.5957 0.1961 0.2376 0.0231 0.7207 0.2296 0.2789 0.0412 0.8989 0.2764 0.0476 0.0943 1.1954 0.3204 0.4586 0.1159 1.4922 0.3831 0.0777 0.1618 1.6918 0.4228 0.0786 0.1687 1.8598 0.5017 0.1148 0.1420 2.1662 0.5289 0.8087 0.2087 2.6652 0.5800 1.0285 0.2735 3.4560 0.6882 1.4144 0.3091 4.6670 0.9457 1.9360 0.4050 5.7495 1.1993 2.4718 0.4932 6.6851 1.3844 2.9083 0.5560 7.3143 1.4211 3.2412 0.6160 7.6967 1.4552 3.3388 0.6579]

您不会回车吗
这样看起来 累死人啊