这个函数默认使用最小二乘,所以不需要训练

% example5_1.m
x=-5:5;
y=3*x-7;                    % 直线方程为 
randn('state',2);                % 设置种子,便于重复执行
y=y+randn(1,length(y))*1.5;            % 加入噪声的直线
plot(x,y,'o');
P=x;T=y;
net=newlind(P,T);                % 用newlind建立线性层
new_x=-5:.2:5;                    % 新的输入样本
new_y=sim(net,new_x);                % 仿真
hold on;plot(new_x,new_y);
legend('原始数据点','最小二乘拟合直线');
net.iw                        % 权值为2.9219

% ans = 
% 
%     [2.9219]

net.b                        % 偏置为-6.6797

% ans = 
% 
%     [-6.6797]

title('newlind用于最小二乘拟合直线');

% example5_2.m
x=-5:5;
y=3*x-7;                        % 直线方程为 
randn('state',2);        % 设置种子,便于重复执行
y=y+randn(1,length(y))*1.5;    % 加入噪声的直线
plot(x,y,'o');
P=x;T=y;
net=newlin(minmax(P),1,[0],maxlinlr(P));    % 用newlin创建线性网络 minmax(P)得到矩阵P的最小和最大值(找到每行的最小和最大,有多少行就有多少对最小和最大);
tic;net=train(net,P,T);toc    % 训练。与newlind不同,newlin创建的网络需要调用训练函数
new_x=-5:.2:5;
new_y=sim(net,new_x);           % 仿真
hold on;plot(new_x,new_y);
legend('原始数据点','最小二乘拟合直线');
title('newlin用于最小二乘拟合直线');
net.iw

% ans = 
% 
%     [2.9219]

net.b

% ans = 
% 
%     [-6.6797]

 

posted on 2019-03-11 19:39  一抹烟霞  阅读(480)  评论(0编辑  收藏  举报

Live2D