发布网友 发布时间:2023-05-01 20:08
共1个回答
热心网友 时间:2023-10-14 11:07
你这是改人家的代码的吧.
看楼主做的是模式识别,可以参考<神经网络之家>nnetinfo里的<一个神经网络模式识别的例子------螃蟹>
你的代码有两个地方有错:
'net.traimParam.epochs=1000;%训练步数' 里的traimParam应该是trainParam,后面几句也是.
newff里 [10,3],3代表输出是3个变量,而你的输出是一个变量.所以应该改为[10,1]
改好的代码如下:
P=[329.820 332.869 328.685 329.011 332.596 337.584 330.125 333.822 331.888 336.239 329.090 332.724 334.409 336.184 337.622 332.897 327.786 330.213 329.179 340.234 337.217 333.563 333.259 337.763 330.012 334.876 335.324 331.829 333.317 328.841];%输出样本
T=[01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 10 10 10 10 10];
net=newff(minmax(P),[10,1],{'tansig','logsig'},'trainlm');%创建新的向前神经网络
net=init(net);%初始化函数iw1=net.IW{1};%层与层的权系数
b1=net.b{1};%层与层间神经元的阈值
iw2=net.IW{2};
b2= net.b{2};
net.trainParam.epochs=1000;%训练步数
net.trainParam.goal=0.0001;%目标误差
net.trainParam.Ir=0.1;%学习率
net=train(net,P,T);%训练指令
y=sim(net,P);%仿真
figure(1);
plot(y,'r+');
grid;
p=[330.624 335.042 331.995 335.497 330.140 328.075 328.010 334.200 332.044 331.983 371.688 375.61 377.571 383.452 373.206 375.863 375.041 369.156 373.902 369.599];
a=sim(net,p);%测试
hold on
plot(a,'bo')