Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2011-04-24
年龄: 38
帖子: 1
声望力: 0 ![]() |
![]()
我的代码如下:
>> a=newfis('fuzzf'); >> a=addvar(a,'input','distance',[-5 5]); >> a=addmf(a,'input',1,'VC','trimf',[-5 -5 -2]); >> a=addmf(a,'input',1,'C','trimf',[-5 -2 0]); >> a=addmf(a,'input',1,'ZO','trimf',[-2 0 2]); >> a=addmf(a,'input',1,'F','trimf',[0 2 5]); >> a=addmf(a,'input',1,'VF','trimf',[2 5 8]); >> >> a=addvar(a,'input','acceleratison',[0 4]); >> a=addmf(a,'input',2,'SA','gaussmf',[1 0]); >> a=addmf(a,'input',2,'MA','gaussmf',[1 2]); >> a=addmf(a,'input',2,'LA','gaussmf',[1 4]); >> >> a=addvar(a,'output','safe',[-1 1]); >> a=addmf(a,'output',1,'D','trimf',[-1 -1 0]); >> a=addmf(a,'output',1,'M','trimf',[-1 0 1]); >> a=addmf(a,'output',1,'S','trimf',[0 1 1]); >> >> rulelist=[1 1 2 1 1; 1 2 2 1 1; 1 3 3 1 1; 1 4 3 1 1; 1 5 3 1 1; 2 1 2 1 1; 2 2 2 1 1; 2 3 2 1 1; 2 4 3 1 1; 2 5 3 1 1; 3 1 1 1 1; 3 2 1 1 1; 3 3 1 1 1; 3 4 2 1 1; 3 5 3 1 1]; >> a1=setfis(a,'defuzzmethod','mom'); >> writefis(a1,'fuzzf'); >> a2=readfis('fuzzf'); >> disp('------------------------------------------------------'); ------------------------------------------------------ >> disp(' fuzzy controller table:distance=[-5,+5],acceleratison=[0,+4]'); fuzzy controller table:distance=[-5,+5],acceleratison=[0,+4] >> disp('----------------------------------------------------------'); ---------------------------------------------------------- >> ulist=zeros(5,11); >> for i=1:5 for j=1:11 acceleratison(i)=-1+i; distance(j)=-6+j; ulist(i,j)=evalfis([acceleratison(i),distance(j)],a2); end end 结果提示错误: Warning: Some input values are outside of the specified input range. > In evalfis at 73 ??? Calloc error in fisCreateMatrix! Error in ==> evalfis at 81 [output,IRR,ORR,ARR] = evalfismex(input, fis, numofpoints); 我想生成一个5行11列的查询表,请问这错误应该怎么修改? |
![]() |
![]() |