matlab神经网络多输入单输出问题
发布网友
发布时间:2022-05-20 22:38
我来回答
共1个回答
热心网友
时间:2023-10-07 14:02
首先:你的想法(199个数作为输入,1个数作为输出)是没什么问题,但是你的输入矩阵为199*n,你的n=1,表明你的样本只有一个,这样一个孤立的样本作为训练样本没什么意义;
其次:姑且不谈你的样本意义,需要跟你说明的是,matlab神经网络工具箱是以一列为一个样本,而你的B=minmax(input')使得B为1*199的矩阵,显然不对,最好加上B=B';
最后:[net,tr]=train(net,input,output,[],[]);中的参数为三个也行,改为net=train(net,input,output);
上面所述是按旧版本来的。
下面是我修改的程序,matlab版本R2012b,你的是旧版本的matlab,所以newff用法跟新的略有不同:
clear
p=1:0.05:11-0.05;
t=(p-1).*(p-2).*(p-4).*(p-9).*(p-11);
N=length(p);
input=t(1:199)';
output=t(200);
ptest=t(2:200)';
% B=minmax(input');
net = newff(input,output,[20 6],{'tansig' 'tansig' 'purelin'},'traingdx','learngdm');
[net,tr]=train(net,input ,output);
a=sim(net,ptest');