我把程序大概写了一下,但是不保证没有语法错误,我电脑里面已经没有装matlab了,而且搞神经网络也是1年前的事情了。但是思路大致是这样的:
%-----------------------------------------------
P=[164, 164, 164, ……, 168, 168, 168
21.8,11,1, 3.2,……,-10, -11.6, -13.1];
T=[40.17, 40.41, 40.7,,…..40.63, 40.88,41,17];%先把你的数值写成如上的形式,P是输入向量,45列,2行;T是输出向量,45列,1行。
net=newff(minmax(P),[5,1],{'tansig''purelin'});%建立一个网络,设置隐藏层神经元个数是5个,两个传递函数是tansig和purelin
net=train(net,P,T);%训练网络
%接下来,得到这个训练好的网络的权值和阈值
W1=net.iw{1,1};%隐藏层权值
W2=net.lw{2,1};%输出层权值
B1=net.b{1,1};%隐藏层阈值
B2=net.b{2,1};%输出层阈值
%得到结果
A1=tansig(W1*P,B1);
A2=purelin(W2*A1,B2);
另外,
Tansig的函数是tansig(n) = 2/(1+exp(-2*n))-1
Purelin的函数是purelin(n)=n
我把书中的示意图传上来了,应该可以帮助你理解。