这个函数默认使用最小二乘,所以不需要训练
% example5_1.m
x=-:;
y=*x-; % 直线方程为
randn('state',); % 设置种子,便于重复执行
y=y+randn(,length(y))*1.5; % 加入噪声的直线
plot(x,y,'o');
P=x;T=y;
net=newlind(P,T); % 用newlind建立线性层
new_x=-:.:; % 新的输入样本
new_y=sim(net,new_x); % 仿真
hold on;plot(new_x,new_y);
legend('原始数据点','最小二乘拟合直线');
net.iw % 权值为2.% ans =
%
% [2.9219]net.b % 偏置为-6.6797% ans =
%
% [-6.6797]title('newlind用于最小二乘拟合直线');
% example5_2.m
x=-:;
y=*x-; % 直线方程为
randn('state',); % 设置种子,便于重复执行
y=y+randn(,length(y))*1.5; % 加入噪声的直线
plot(x,y,'o');
P=x;T=y;
net=newlin(minmax(P),,[],maxlinlr(P)); % 用newlin创建线性网络 minmax(P)得到矩阵P的最小和最大值(找到每行的最小和最大,有多少行就有多少对最小和最大);
tic;net=train(net,P,T);toc % 训练。与newlind不同,newlin创建的网络需要调用训练函数
new_x=-:.:;
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]