matlab程序出错~~

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:59:38
在matlab里输入如下代码:
[Pn,minP,maxP]=premnmx(P); %输入样本的归一化
[Tn,minT,maxT]=premnmx(T); %输出样本的归一化
net=netff(minmax(Pn),[10,1],{purelin,purelin},trainlm,learngdm,msereg); %创建BP网络
net.trainParam.show=5;
net.trainParam.epochs=5000;
net.trainParam.goal=0.005; %训练参数设置
[net,tr]=train(net,Pn,Tn); %进行网络训练
An=sin(net,Pn); %网络仿真测试
E=msereg(Tn-An); %计算网络误差
A=postmnmx(An,minT,maxT); %仿真测试结果的反归一化
save k19830 net; %测试符合要求后,保存网络
%从EXCEL中导入检验样本P1
[P1n]=tramnmx(P1,minP,maxP); %检验样本的归一化
Bn=sim(net,P1n); %检验样本的仿真预测
B=postmnmx(Bn,minT,maxT); %检验样本仿真预测结果的反归一化
%将结果导出至EXCEL,保存
然后运行后出现如下字样:
Warning: Some maximums and minimums are equal. Those inputs won't be transformed.
> In D:\MATLAB6p5\toolbox\nnet\nnet\premnmx.m at line 61
??? Error using ==> tansig
Not enough arguments.
这是什么问题啊?怎么解决?

那个警告是说你有一个样本的最大最小值相等了,所以不能进行归一化(或者反归一化),有可能对后面的神经元转换造成影响.错误提示在使用tansig这个神经元的时候输入参数不够,可能就是前面的警告造成的.不过,我没有看见你在哪用了tansig这个函数.