登录论坛

查看完整版本 : [文章]第一次使用matlab的一个小小收获


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高手来说,只是鸡毛蒜皮的东西,而对我来说却是个大收获。

fanxing39
2008-06-19, 01:34
:heart: :heart: :heart: 再厉害的人也要调试程序,希望你能够从matlab学习中得到快乐,并且期待其中一部分快乐是来自于这里的! 加油!

qingqing1983
2008-07-04, 11:53
谢谢你,我也遇到同样的问题,经过看你帖子问题解决了!

kushugmail
2008-08-04, 07:14
加油,这个软件是个好东东!学好了,它有大用处。

guofeng0108
2008-10-22, 12:22
大家都是新手
一起努力吧

mathjiang
2008-10-23, 19:41
恭喜楼主哈,虽然来得有点儿晚。

woyaolai
2008-10-24, 18:50
刚注册 今天来看看 我要学这个软件 昨天才安装了