mlzhang327 发表于 2007-4-28 19:47

帮忙看下这个程序,谢谢:)

各位大侠:
用神经网络来学习模糊规则,代码如下:
%获得网络的输入样本P和目标样本T
P=[ 1 0.18 0 0 0 01 0 0 0 0;
    1 0.18 0 0 0 00 1 0 0 0;
    1 0.18 0 0 0 00 0 1 0 0;
    1 0.18 0 0 0 00 0 0 1 0;
    1 0.18 0 0 0 00 0 0 0 1;
    0.08 0.9 0.35 0 0 01 0 0 0 0;
    0.08 0.9 0.35 0 0 00 1 0 0 0;
    0.08 0.9 0.35 0 0 00 0 1 0 0;
    0.08 0.9 0.35 0 0 00 0 0 1 0;
    0.08 0.9 0.35 0 0 00 0 0 0 1;
    0 0.02 0.6 0.6 0.02 01 0 0 0 0;
    0 0.02 0.6 0.6 0.02 00 1 0 0 0;
    0 0.02 0.6 0.6 0.02 00 0 1 0 0;
    0 0.02 0.6 0.6 0.02 00 0 0 1 0;
    0 0.02 0.6 0.6 0.02 00 0 0 0 1;
    0 0 0 0.35 0.9 0.081 0 0 0 0;
    0 0 0 0.35 0.9 0.080 1 0 0 0;
    0 0 0 0.35 0.9 0.080 0 1 0 0;
    0 0 0 0.35 0.9 0.080 0 0 1 0;
    0 0 0 0.35 0.9 0.080 0 0 0 1;
    0 0 0 0 0.2 11 0 0 0 0;
    0 0 0 0 0.2 10 1 0 0 0;
    0 0 0 0 0.2 10 0 1 0 0;
    0 0 0 0 0.2 10 0 0 1 0;
    0 0 0 0 0.2 10 0 0 0 1;];
T=[ 0 0 0 0 1 0 0;
    0 0 0 0 1 0 0;
    0 0 0 0 0 1 0;
    0 0 0 0 0 0 1;
    0 0 0 0 0 0 1;
    0 0 0 1 0 0 0;
    0 0 0 0 1 0 0;
    0 0 0 0 0 1 0;
    0 0 0 0 0 1 0;
    0 0 0 0 0 0 1;
    0 1 0 0 0 0 0;
    0 1 0 0 0 0 0;
    0 0 0 1 0 0 0;
    0 0 0 1 0 0 0;
    0 0 0 0 1 0 0;
    1 0 0 0 0 0 0;
    0 0 1 0 0 0 0;
    0 0 1 0 0 0 0;
    0 1 0 0 0 0 0;
    0 0 0 1 0 0 0;
    1 0 0 0 0 0 0;
    1 0 0 0 0 0 0;
    0 0 1 0 0 0 0;
    0 1 0 0 0 0 0;
    0 1 0 0 0 0 0;];
%根据Kolmogorov定理,由输入层有11个结点,所以中间层有23个结点
%中间层神经元的传递函数为tansig
%输出层有7个结点,其神经元传递函数为logsig
%训练函数采用traingdx
net=newff(minmax(P),,{'tansig','logsig'},'traingdx');
%训练步数为1000次
%训练目标误差为0.001
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=train(net,P,T);
Y=sim(net,P);
%求训练值在每一个点上的误差
for i=1:25
    x(i)=norm(Y(:,i));
end
plot(1:16,x);
   
运行后,出现如下错误
??? P=[ 1 0.18 0 0 0 01 0 0 0 0;
                                 |
Error: Missing variable or function.
请问,怎么回事?
谢谢!!

eight 发表于 2007-4-28 20:44

原帖由 mlzhang327 于 2007-4-28 19:47 发表 http://forum.vibunion.com/forum/images/common/back.gif
各位大侠:
用神经网络来学习模糊规则,代码如下:
%获得网络的输入样本P和目标样本T
P=[ 1 0.18 0 0 0 01 0 0 0 0;
    1 0.18 0 0 0 00 1 0 0 0;
    1 0.18 0 0 0 00 0 1 0 0;
    1 0.18 0...

一个语句没有完成时,用省略号(三个点)结尾

mlzhang327 发表于 2007-4-28 21:36

原帖由 eight 于 2007-4-28 20:44 发表 http://forum.vibunion.com/forum/images/common/back.gif


一个语句没有完成时,用省略号(三个点)结尾



:@o 不懂,能不能再详细点。

怎么改???

eight 发表于 2007-4-28 22:20

原帖由 mlzhang327 于 2007-4-28 21:36 发表 http://forum.vibunion.com/forum/images/common/back.gif




:@o 不懂,能不能再详细点。

怎么改???


看错了,是分号问题,请保持英文状态下输入标点符号

xjzuo 发表于 2007-4-29 09:09

除了分号问题(输入法不对),
“plot(1:16,x)”这句横坐标长度也要修改。
我运行了一下,程序基本没什么大问题,可以收敛。

lxq 发表于 2007-4-29 12:56

输入法看上去就不太对

mlzhang327 发表于 2007-4-29 13:15

谢谢各位:)

输入法我已经改过了,可又出现了新的错误.....

??? Error using ==> network.train
Targets are incorrectly sized for network.
Matrix must have 7 rows.

Error in ==> fzynnOnramp at 61
net=train(net,P,T);


Matrix must have 7 rows这是什么意思??我的目标矩阵是7列呀.....

net=train(net,P,T);这个语句有错吗??

再次感谢!!

[ 本帖最后由 mlzhang327 于 2007-4-29 13:19 编辑 ]

eight 发表于 2007-4-29 13:36

原帖由 mlzhang327 于 2007-4-29 13:15 发表 http://forum.vibunion.com/forum/images/common/back.gif
谢谢各位:)

输入法我已经改过了,可又出现了新的错误.....

??? Error using ==> network.train
Targets are incorrectly sized for network.
Matrix must have 7 rows.

Error in ==> fzynnOn ...


rows是行的意思。。。。。。。。

mlzhang327 发表于 2007-4-29 13:39

非常谢谢!!!

我转置了一下,可以运行了!
页: [1]
查看完整版本: 帮忙看下这个程序,谢谢:)