回 帖 发 新 帖 刷新版面

主题:请大家帮帮忙,这段程序错在哪?

clear
P=[0.0177,0,0.02,0.0054,0.058;...         %1
   0.0230,0,0.1,0.0054,0;...              %2
   0.0619,0.2424,0.15,0.0323,0.2319;...   %3
   0.2212,0.6061,0.4,0.1613,0.5217;...    %4
   0.0796,0.8182,0.8,0.0968,0.7971]       %5
T=[0.6725,0.6943,0.6376,0.4891,0.1616]
net=newff([-1,1],[3,1],{'tansig','logsig'},'traingdx')
net.trainParam.epochs=500;
net.trainParam.goal=0.001;
net=train(net,P,T)
以下是在matlab6.5下运行的时候出现的错误提示:
??? Error using ==> network/train
Inputs are incorrectly sized for network.
Matrix must have 1 rows.

Error in ==> d:\MATLAB6p5\work\bb.m
On line 11  ==> net=train(net,P,T)

回复列表 (共3个回复)

沙发

P是输入量,T是期望值,他们的格式应该是一样的。
你的P是个5×5的距阵,期望值确实个1×5的,当然不对了

板凳

2楼说的很对,你的T不对,应该转置一下!!

3 楼

[quote]P是输入量,T是期望值,他们的格式应该是一样的。
你的P是个5×5的距阵,期望值确实个1×5的,当然不对了
[/quote]
把生成网络函数newff的第一个参数是R×2的距阵,你的输入距阵是5×5,那么就是一个5×2的距阵,不能简单的写成[-1,1]
我改了一下,可以运行,很简单,就是提取每行的最小值与最大值
P=[0.0177,0,0.02,0.0054,0.058;...         %1
   0.0230,0,0.1,0.0054,0;...              %2
   0.0619,0.2424,0.15,0.0323,0.2319;...   %3
   0.2212,0.6061,0.4,0.1613,0.5217;...    %4
   0.0796,0.8182,0.8,0.0968,0.7971]       %5
T=[0.6725,0.6943,0.6376,0.4891,0.1616]
net=newff([0,0.058;0,0.1;0.15,0.2319;0.2212,0.5217;0.0796,0.8182],[3,1],{'tansig','logsig'},'traingdx')
net.trainParam.epochs=500;
net.trainParam.goal=0.001;
net=train(net,P,T)

我来回复

您尚未登录,请登录后再回复。点此登录或注册