jin123
2008-06-15, 21:13
我刚下载matlab7,学了几天基本数学运算,然后第一次用来运行一个小程序,便有所收获。
这个小程序是在一本《神经网络实用教程》(普通高等教育“十一五”规划教材)上,照书上键入如下程序:
p=[0.5152 0.8173 1.0000;
0.8173 1.0000 0.7308;
1.0000 0.7308 0.1390;
0.7308 0.1390 0.1087;
0.1390 0.1087 0.3520;
0.1087 0.3520 0.0000;]
t=[0.7308 0.1390 0.1087 0.3520 0.0000 0.3761]
net=newff([0 1;0 1;0 1],[4,1],{'tansig','logsig'},'traingd');
net.trainparam.epochs=15000;
net.trainparam.goal=0.01;
lp.lr=0.1;
net=train(net,p,t);
检查无误后运行便出错:
??? Error using ==> network.train
Inputs are incorrectly sized for network.
Matrix must have 3 rows.
Error in ==> Untitled12 at 13
net=train(net,p,t);
我没学过英语,借用字典大概知道错误是说,网络输入错误,矩阵必须要有三行。错在程序Untitled12的第13行,即net=train(net,p,t); 。但不知道如何修改,好在我对神经网络有点基础,于是查神经网络的输入数据。从net=newff([0 1;0 1;0 1],[4,1],{'tansig','logsig'},'traingd'); 知
程序上建立的神经网络输入层是三个单元,即由([0 1;0 1;0 1] 看出,但是程序输入是6个数据,即 0.5152 0.8173 1.0000 0.7308 0.1390 0.1087 ,于是进一步检查发现程序中的p 矩阵 P= [ ] 没有转置,当加以转置后,即p=[ ] ’ ,然后运行,高兴地看到程序顺利地通过了,并得到了正确结果。绘出了一幅曲线图。
这个小问题对于matlab高手来说,只是鸡毛蒜皮的东西,而对我来说却是个大收获。
这个小程序是在一本《神经网络实用教程》(普通高等教育“十一五”规划教材)上,照书上键入如下程序:
p=[0.5152 0.8173 1.0000;
0.8173 1.0000 0.7308;
1.0000 0.7308 0.1390;
0.7308 0.1390 0.1087;
0.1390 0.1087 0.3520;
0.1087 0.3520 0.0000;]
t=[0.7308 0.1390 0.1087 0.3520 0.0000 0.3761]
net=newff([0 1;0 1;0 1],[4,1],{'tansig','logsig'},'traingd');
net.trainparam.epochs=15000;
net.trainparam.goal=0.01;
lp.lr=0.1;
net=train(net,p,t);
检查无误后运行便出错:
??? Error using ==> network.train
Inputs are incorrectly sized for network.
Matrix must have 3 rows.
Error in ==> Untitled12 at 13
net=train(net,p,t);
我没学过英语,借用字典大概知道错误是说,网络输入错误,矩阵必须要有三行。错在程序Untitled12的第13行,即net=train(net,p,t); 。但不知道如何修改,好在我对神经网络有点基础,于是查神经网络的输入数据。从net=newff([0 1;0 1;0 1],[4,1],{'tansig','logsig'},'traingd'); 知
程序上建立的神经网络输入层是三个单元,即由([0 1;0 1;0 1] 看出,但是程序输入是6个数据,即 0.5152 0.8173 1.0000 0.7308 0.1390 0.1087 ,于是进一步检查发现程序中的p 矩阵 P= [ ] 没有转置,当加以转置后,即p=[ ] ’ ,然后运行,高兴地看到程序顺利地通过了,并得到了正确结果。绘出了一幅曲线图。
这个小问题对于matlab高手来说,只是鸡毛蒜皮的东西,而对我来说却是个大收获。