william841201
2010-11-01, 18:21
今天编译了一个神经网络模糊控制的程序,希望通过外部输入误差和误差变化率(在程序中用a和b表示)进而推导出控制输出out,我遇到的问题是,我希望将外部输入的a和b组成一个数组p,然后导入到训练好的模糊神经网络中进行结果的推导,但是在编译的时候提示出错,提示:??? Error: File: C:\MATLAB7\work1\labview.m Line: 1 Column: 25 Missing MATLAB operator. 请大家帮帮我,谢谢。下面是代码。
function out=fangzhen(a b)
trnData=[0.08028 -0.8818 1
0.08028 -0.4273 1
0.08028 -0.2455 1
0.08028 -0.02727 1.08
0.08028 0.1909 1.2
0.08028 0.5 1.19
0.08028 0.7182 1.44
0.08028 0.8818 1.73
0.2638 -0.8091 1
0.2638 -0.6818 1
0.2638 0.009091 1.14
0.2638 0.2455 1.46
0.2638 0.4455 1.43
0.2638 0.6273 1.43
0.2638 0.7909 1.58
0.2638 0.9 1.73
0.5161 -0.8636 1.04
0.5161 -0.7 1.05
0.5161 -0.4818 1.04
0.5161 0.2455 1.53
0.5161 0.5 1.82
0.5161 0.6636 1.81
0.5161 0.7909 1.8
0.5161 0.9545 1.88
0.8601 -0.8636 1.31
0.8601 -0.7 1.39
0.8601 -0.4818 1.39
0.8601 0.2455 1.91
0.8601 0.5 2.28
0.8601 0.6636 2.37
0.8601 0.7909 2.39
0.8601 0.8818 2.38
1.25 -0.8273 1.36
1.25 -0.6455 1.71
1.25 -0.4273 2
1.25 -0.2455 2.01
1.25 0.5182 2.85
1.25 0.7182 2.99
1.25 0.8273 3
1.25 0.9364 3
1.548 -0.8636 1.48
1.548 -0.7182 1.55
1.548 -0.4636 2.1
1.548 -0.2636 2.48
1.548 0.009091 2.6
1.548 0.6091 3.23
1.548 0.7545 3.47
1.548 0.8818 3.47
1.823 -0.8636 1.91
1.823 -0.7 1.92
1.823 -0.5182 2.08
1.823 -0.3182 2.44
1.823 -0.04545 2.91
1.823 0.1727 3.2
1.823 0.7727 3.81
1.823 0.8818 3.84
2.007 -0.9182 2.22
2.007 -0.7909 2.24
2.007 -0.5727 2.28
2.007 -0.3545 2.61
2.007 -0.04545 3.09
2.007 0.1364 3.27
2.007 0.3909 3.7
2.007 0.9364 3.97
2.236 -0.8636 2.57
2.236 -0.6455 2.59
2.236 -0.5 2.68
2.236 -0.2818 3.01
2.236 -0.02727 3.42
2.236 0.2091 3.56
2.236 0.4273 3.77
2.236 0.6273 3.97
2.42 -0.5364 2.89
2.42 -0.2636 3.28
2.42 -0.02727 3.6
2.42 0.2455 3.76
2.42 0.5 3.89
2.42 0.6818 3.99
2.42 0.8273 4
2.42 0.9364 4
];
chkData=[0.08028 -0.7545 1
0.08028 -0.6273 1
0.2638 -0.4818 1
0.2638 -0.3 1
0.5161 -0.2818 1.05
0.5161 0.009091 1.19
0.8601 -0.2636 1.42
0.8601 -0.02727 1.48
1.25 0.009091 2.18
1.25 0.3364 2.63
1.548 0.1909 2.9
1.548 0.4091 3.23
1.823 0.4091 3.55
1.823 0.6273 3.8
2.007 0.6273 3.92
2.007 0.7909 3.96
2.236 0.7727 3.99
2.236 0.9364 4
2.42 -0.9182 2.81
2.42 -0.7909 2.79
];
numMFs1=5; %隶属度函数个数
numMFs2=5;
mfType1='gaussmf'; %隶属度函数类型
mfType2='gaussmf';
fismat=genfis1(trnData,[numMFs1 numMFs2],char(mfType1,mfType2),'constant');
numEpochs=100; %训练次数为100
[fismat1,trnErr,ss,fismat2,chkErr]=anfis(trnData,fismat,numEpochs,NaN,chkData);
p=[a b];%个人怀疑问题处在这里,希望大家能帮我解决,谢谢!
out=evalfis(p,fismat1);
out
function out=fangzhen(a b)
trnData=[0.08028 -0.8818 1
0.08028 -0.4273 1
0.08028 -0.2455 1
0.08028 -0.02727 1.08
0.08028 0.1909 1.2
0.08028 0.5 1.19
0.08028 0.7182 1.44
0.08028 0.8818 1.73
0.2638 -0.8091 1
0.2638 -0.6818 1
0.2638 0.009091 1.14
0.2638 0.2455 1.46
0.2638 0.4455 1.43
0.2638 0.6273 1.43
0.2638 0.7909 1.58
0.2638 0.9 1.73
0.5161 -0.8636 1.04
0.5161 -0.7 1.05
0.5161 -0.4818 1.04
0.5161 0.2455 1.53
0.5161 0.5 1.82
0.5161 0.6636 1.81
0.5161 0.7909 1.8
0.5161 0.9545 1.88
0.8601 -0.8636 1.31
0.8601 -0.7 1.39
0.8601 -0.4818 1.39
0.8601 0.2455 1.91
0.8601 0.5 2.28
0.8601 0.6636 2.37
0.8601 0.7909 2.39
0.8601 0.8818 2.38
1.25 -0.8273 1.36
1.25 -0.6455 1.71
1.25 -0.4273 2
1.25 -0.2455 2.01
1.25 0.5182 2.85
1.25 0.7182 2.99
1.25 0.8273 3
1.25 0.9364 3
1.548 -0.8636 1.48
1.548 -0.7182 1.55
1.548 -0.4636 2.1
1.548 -0.2636 2.48
1.548 0.009091 2.6
1.548 0.6091 3.23
1.548 0.7545 3.47
1.548 0.8818 3.47
1.823 -0.8636 1.91
1.823 -0.7 1.92
1.823 -0.5182 2.08
1.823 -0.3182 2.44
1.823 -0.04545 2.91
1.823 0.1727 3.2
1.823 0.7727 3.81
1.823 0.8818 3.84
2.007 -0.9182 2.22
2.007 -0.7909 2.24
2.007 -0.5727 2.28
2.007 -0.3545 2.61
2.007 -0.04545 3.09
2.007 0.1364 3.27
2.007 0.3909 3.7
2.007 0.9364 3.97
2.236 -0.8636 2.57
2.236 -0.6455 2.59
2.236 -0.5 2.68
2.236 -0.2818 3.01
2.236 -0.02727 3.42
2.236 0.2091 3.56
2.236 0.4273 3.77
2.236 0.6273 3.97
2.42 -0.5364 2.89
2.42 -0.2636 3.28
2.42 -0.02727 3.6
2.42 0.2455 3.76
2.42 0.5 3.89
2.42 0.6818 3.99
2.42 0.8273 4
2.42 0.9364 4
];
chkData=[0.08028 -0.7545 1
0.08028 -0.6273 1
0.2638 -0.4818 1
0.2638 -0.3 1
0.5161 -0.2818 1.05
0.5161 0.009091 1.19
0.8601 -0.2636 1.42
0.8601 -0.02727 1.48
1.25 0.009091 2.18
1.25 0.3364 2.63
1.548 0.1909 2.9
1.548 0.4091 3.23
1.823 0.4091 3.55
1.823 0.6273 3.8
2.007 0.6273 3.92
2.007 0.7909 3.96
2.236 0.7727 3.99
2.236 0.9364 4
2.42 -0.9182 2.81
2.42 -0.7909 2.79
];
numMFs1=5; %隶属度函数个数
numMFs2=5;
mfType1='gaussmf'; %隶属度函数类型
mfType2='gaussmf';
fismat=genfis1(trnData,[numMFs1 numMFs2],char(mfType1,mfType2),'constant');
numEpochs=100; %训练次数为100
[fismat1,trnErr,ss,fismat2,chkErr]=anfis(trnData,fismat,numEpochs,NaN,chkData);
p=[a b];%个人怀疑问题处在这里,希望大家能帮我解决,谢谢!
out=evalfis(p,fismat1);
out