Error using parsrule (line 182)

Output MF index is too high

Error in readfis (line 231)

out=parsrule(out,txtRuleList,'indexed');

Error in PSO1127 (line 244)

PSOfis1126=readfis('PSOfis1126.fis');   %导入工作空间

上面是错误代码。第一次运行可以的,第二次使用粒子群算法优化了第一次的模糊参数和规则就不成功了。下面是我模糊控制m文件代码:

%------初始格式化

clear all;              %清除所有变量

clc;                    %清屏

format long;            %将数据显示为长整形科学计数

%初始化模糊控制隶属度函数及规则

A1=[1 2 3 4 5 1 2 3 4 5 0.5 1 2 3.5 6];

R1=[6 6 5 4 3 2 1 1 1 1 1

6 6 6 5 4 3 1 1 1 1 1

6 6 6 6 5 4 3 2 2 1 1

6 6 6 6 5 4 4 3 3 2 2

7 6 6 6 5 4 4 4 3 3 3

7 7 6 6 5 4 4 4 4 3 3

7 7 6 6 5 4 4 4 4 4 4

7 7 7 6 5 4 4 4 4 4 4

8 7 7 6 6 5 5 5 5 4 4

9 8 7 7 6 6 6 5 5 5 5

10 9 8 7 7 6 6 6 5 5 5 ];

R2=R1';    %行转列

R3=R2(

;    %每一列堆叠

R=R3';   %列转化成行向量

A=[A1,R];   %mfuzzy1116.fis

%------给定初始条条件------------------

N=5;                   %?初始化群体个数

D=136;                  %初始化群体维数

T=50;                   %初始化群体最大迭代次数

c1=2;                  %学习因子1

c2=2;                   %学习因子2

w=0.4;                 %惯性权重1

eps=10^(-6);            %设置精度(在已知最小值的时候用)--

%--------初始化种群个体(限定位置和速度)------------

x=zeros(N,D);     %位置,50

v=zeros(N,D);

for i=1:N

for j=1:10

x(i,j)=round((-5+10*rand())*100)/100;

v(i,j)=round((-5+10*rand())*100)/100;

end

for j=11:15

x(i,j)=round((-6+12*rand())*100)/100;

v(i,j)=round((-6+12*rand())*100)/100;

end

for j=16:136

x(i,j)=round(1+10*rand());  %随机初始化位置

v(i,j)=round(1+10*rand());  %随机初始化速度

end

end

x(1,

=A;           %初始化粒子群

pbest=400*ones(N,1);  %个体最优

pg=400*ones(1,D); %Pg为全局最优

gbest=400;    %全局最优

p=x;

%a=newfis('PSOfis1126');  %与mfuzzy1116是一致的

%-----进入主循环,按照公式依次迭代直到满足精度或者迭代次数---

for t=1:5

i=1;

k=x(i,

';

X(1:15)=round(k(1:15)*100)/100;

X(16:136)=round(k(16:136));

a=newfis('PSOfis1126');

a=addvar(a,'input','Treq',[-5,5]);

a=addmf(a,'input',1,'NBB','trimf',[-5,-X(5),-X(4)]);

a=addmf(a,'input',1,'NB','trimf',[-X(5),-X(4),-X(3)]);

a=addmf(a,'input',1,'NM','trimf',[-X(4),-X(3),-X(2)]);

a=addmf(a,'input',1,'NS','trimf',[-X(3),-X(2),-X(1)]);

a=addmf(a,'input',1,'NSS','trimf',[-X(2),-X(1),0]);

a=addmf(a,'input',1,'ZE','trimf',[-X(1),0,X(1)]);

a=addmf(a,'input',1,'PSS','trimf',[0,X(1),X(2)]);

a=addmf(a,'input',1,'PS','trimf',[X(1),X(2),X(3)]);

a=addmf(a,'input',1,'PM','trimf',[X(2),X(3),X(4)]);

a=addmf(a,'input',1,'PB','trimf',[X(3),X(4),X(5)]);

a=addmf(a,'input',1,'PBB','trimf',[X(4),X(5),5]);

a=addvar(a,'input','SOC',[-5,5]);

a=addmf(a,'input',2,'NBB','trimf',[-5,-X(10),-X(9)]);

a=addmf(a,'input',2,'NB','trimf',[-X(10),-X(9),-X(8)]);

a=addmf(a,'input',2,'NM','trimf',[-X(9),-X(8),-X(7)]);

a=addmf(a,'input',2,'NS','trimf',[-X(8),-X(7),-X(6)]);

a=addmf(a,'input',2,'NSS','trimf',[-X(7),-X(6),0]);

a=addmf(a,'input',2,'ZE','trimf',[-X(6),0,X(6)]);

a=addmf(a,'input',2,'PSS','trimf',[0,X(6),X(7)]);

a=addmf(a,'input',2,'PS','trimf',[X(6),X(7),X(8)]);

a=addmf(a,'input',2,'PM','trimf',[X(7),X(8),X(9)]);

a=addmf(a,'input',2,'PB','trimf',[X(8),X(9),X(10)]);

a=addmf(a,'input',2,'PBB','trimf',[X(9),X(10),5]);

a=addvar(a,'output','Te',[-6,6]);

a=addmf(a,'output',1,'NBB','trimf',[-6,-X(15),-3]);

a=addmf(a,'output',1,'NB','trimf',[-2*X(14)+X(13),-X(14),-X(13)]);

a=addmf(a,'output',1,'NM','trimf',[-2*X(13)+X(12),-X(13),-X(12)]);

a=addmf(a,'output',1,'NS','trimf',[-X(13),-X(12),-2*X(12)+X(13)]);

a=addmf(a,'output',1,'NSS','trimf',[-3*X(11),-X(11),X(11)]);

a=addmf(a,'output',1,'ZE','trimf',[-X(12),0,X(12)]);

a=addmf(a,'output',1,'PSS','trimf',[-X(11),X(11),3*X(11)]);

a=addmf(a,'output',1,'PS','trimf',[2*X(12)-X(13),X(12),X(13)]);

a=addmf(a,'output',1,'PM','trimf',[X(12),X(13),2*X(13)-X(12)]);

a=addmf(a,'output',1,'PB','trimf',[X(13),X(14),2*X(14)-X(13)]);

a=addmf(a,'output',1,'PBB','trimf',[3,X(15),6]);

rulelist=[1 1 X(16) 1 1;

1 2 X(17) 1 1;    %Xulelist是一个矩阵,每一行为一条规则,他们之间是ALSO的关系

1 3 X(18) 1 1;   %前N个数分别表示N个输入变量的某一个语言名称的indeX

1 4 X(19) 1 1;  %没有的话用0表示,后面两个分别表示该条规则的权重和各条件的关系,1表示AND,2表示OX

1 5 X(20) 1 1;

1 6 X(21) 1 1;

1 7 X(22) 1 1;

1 8 X(23) 1 1;

1 9 X(24) 1 1;

1 10 X(25) 1 1;

1 11 X(26) 1 1;

2 1 X(27) 1 1;

2 2 X(28) 1 1;

2 3 X(29) 1 1;

2 4 X(30) 1 1;

2 5 X(31) 1 1;

2 6 X(32) 1 1;

2 7 X(33) 1 1;

2 8 X(34) 1 1;

2 9 X(35) 1 1;

2 10 X(36) 1 1;

2 11 X(37) 1 1;

3 1 X(38) 1 1;

3 2 X(39) 1 1;

3 3 X(40) 1 1;

3 4 X(41) 1 1;

3 5 X(42) 1 1;

3 6 X(43) 1 1;

3 7 X(44) 1 1;

3 8 X(45) 1 1;

3 9 X(46) 1 1;

3 10 X(47) 1 1;

3 11 X(48) 1 1;

4 1 X(49) 1 1;

4 2 X(50) 1 1;

4 3 X(51) 1 1;

4 4 X(52) 1 1;

4 5 X(53) 1 1;

4 6 X(54) 1 1;

4 7 X(55) 1 1;

4 8 X(56) 1 1;

4 9 X(57) 1 1;

4 10 X(58) 1 1;

4 11 X(59) 1 1;

5 1 X(60) 1 1;

5 2 X(61) 1 1;

5 3 X(62) 1 1;

5 4 X(63) 1 1;

5 5 X(64) 1 1;

5 6 X(65) 1 1;

5 7 X(66) 1 1;

5 8 X(67) 1 1;

5 9 X(68) 1 1;

5 10 X(69) 1 1;

5 11 X(70) 1 1;

6 1 X(71) 1 1;

6 2 X(72) 1 1;

6 3 X(73) 1 1;

6 4 X(74) 1 1;

6 5 X(75) 1 1;

6 6 X(76) 1 1;

6 7 X(77) 1 1;

6 8 X(78) 1 1;

6 9 X(79) 1 1;

6 10 X(80) 1 1;

6 11 X(81) 1 1;

7 1 X(82) 1 1;

7 2 X(83) 1 1;

7 3 X(84) 1 1;

7 4 X(85) 1 1;

7 5 X(86) 1 1;

7 6 X(87) 1 1;

7 7 X(88) 1 1;

7 8 X(89) 1 1;

7 9 X(90) 1 1;

7 10 X(91) 1 1;

7 11 X(92) 1 1;

8 1 X(93) 1 1;

8 2 X(94) 1 1;

8 3 X(95) 1 1;

8 4 X(96) 1 1;

8 5 X(97) 1 1;

8 6 X(98) 1 1;

8 7 X(99) 1 1;

8 8 X(100) 1 1;

8 9 X(101) 1 1;

8 10 X(102) 1 1;

8 11 X(103) 1 1;

9 1 X(104) 1 1;

9 2 X(105) 1 1;

9 3 X(106) 1 1;

9 4 X(107) 1 1;

9 5 X(108) 1 1;

9 6 X(109) 1 1;

9 7 X(110) 1 1;

9 8 X(111) 1 1;

9 9 X(112) 1 1;

9 10 X(113) 1 1;

9 11 X(114) 1 1;

10 1 X(115) 1 1;

10 2 X(116) 1 1;

10 3 X(117) 1 1;

10 4 X(118) 1 1;

10 5 X(119) 1 1;

10 6 X(120) 1 1;

10 7 X(121) 1 1;

10 8 X(122) 1 1;

10 9 X(123) 1 1;

10 10 X(124) 1 1;

10 11 X(125) 1 1;

11 1 X(126) 1 1;

11 2 X(127) 1 1;

11 3 X(128) 1 1;

11 4 X(129) 1 1;

11 5 X(130) 1 1;

11 6 X(131) 1 1;

11 7 X(132) 1 1;

11 8 X(133) 1 1;

11 9 X(134) 1 1;

11 10 X(135) 1 1;

11 11 X(136) 1 1;];

a=addrule(a,rulelist);

a1=setfis(a,'DefuzzMethod','centroid');   %Defuzzy

writefis(a1,'PSOfis1126');

a2=readfis('PSOfis1126');

PSOfis1126=readfis('PSOfis1126.fis');   %导入工作空间

代码完毕。运行第一次是可以的,运行第二次就出现了什么的错误。第二次是 X=[1.32000000000000,1.01000000000000,1.24000000000000,2.37000000000000,5.60000000000000,1.12000000000000,3.08000000000000,3.60000000000000,3.32000000000000,6.15000000000000,-1.14000000000000,1.90000000000000,2.86000000000000,1.72000000000000,7.64000000000000,10,7,9,7,6,4,3,4,3,2,3,8,9,9,6,6,7,4,5,3,5,4,10,8,8,8,8,6,3,4,6,4,3,8,7,9,8,8,6,6,6,5,3,3,9,9,8,9,7,6,5,4,3,7,7,11,7,8,10,7,6,4,6,5,7,7,11,10,7,9,8,8,5,6,8,8,5,11,11,7,9,8,5,4,6,6,8,7,12,8,9,8,8,6,6,7,9,8,5,10,11,10,9,7,10,10,8,8,6,6,13,11,10,9,11,7,7,7,8,9,9];这个是粒子群优化后的参数及规则。请问是不是得把优化的参数给它们排个序再使用吗?为什么运行不了呢?

matlab模糊控制m函数,模糊控制m文件运行出错 - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...相关推荐

  1. matlab迭代算法实例sor,SOR迭代 - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...

    方法一:建立了SOR.m的脚本文件,实现的是SOR迭代,程序语言如下: %SOR迭代 clear; clc; format long; i=1; n=6; H=hilb(n); X=ones(n,1) ...

  2. matlab寻峰代码,寻峰的函数!! - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...

    我这里的数据是pgm的,我将其处理成多个高斯拟合的形式,现阶段只能将其最大的那个拟合出来,其他的高斯拟合我需要找到其峰值的位置! 我把前边的语句先列举上: function [ OutArr ] = ...

  3. matlab拟合参数最优,使用matlab最优化方法拟合获得多个动力学参数中的问题 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

    各位师兄师姐,麻烦大家帮我看一下这个问题.我现在想用一个模型来描述我的实验现象,模型如图所示. 我通过实验有了x-t的实验数据,如下图所示,我现在想用matlab的fmincon函数求解模型中的ks和 ...

  4. comsol matlab 循环,comsol保存为m文件,怎样在m文件里面加入for循环 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...

    我利用comsol做好一个案例后,需要大量改变一个参数值,于是我将mph文件保存为m文件,加入了一个for循环,利用comsol with matlab运行,但是显示错误,哪位大神晓得怎样在comso ...

  5. siesta在Linux运行,Siesta编译没有报错,但是一运行就出问题 - 第一原理 - 小木虫 - 学术 科研 互动社区...

    Siesta编译没有报错,但是一运行就出现如下错误forrtl: severe (174): SIGSEGV, segmentation fault occurred,求助高手怎么解决.下面是我的ar ...

  6. matlab 1e3,Matlab 对 ODE的参数进行 拟合 求助@月只蓝 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

    运行 一直提示 Not enough input arguments 以下是我的代码 1 Call lsqnonlin tic % time check clear all; %Experimenta ...

  7. matlab 水文频率曲线,【求助】如何计算水文频率,外行求教 - 地学 - 小木虫 - 学术 科研 互动社区...

    根据某水文现象的统计特性,利用现有水文资料,分析水文变量设计值与出现频率(或重现期)之间的定量关系的工作过程称为水文频率计算. 自然界的现象按发生情况可分成:必然事件,即在一定条件下必然会发生的事情, ...

  8. yunyang tensorflow-yolov3 Intel Realsense D435 (并发)使用locals()函数批量配置摄像头运行识别程序并画框(代码记录)(代码示例)

    文章目录 20191126 20191202-1 20191202-2 20191126 # -*- encoding: utf-8 -*- """ @File : te ...

  9. matlab简单的程序,一段简单的matlab程序 - 程序语言 - 小木虫 - 学术 科研 互动社区...

    原程序是可以运行的,为全面理解程序内容,我将分以下几个部分进行分析: 1."for x=varx"怎么理解? 请参看Matlab关于for函数的帮助文件: Syntax:for i ...

最新文章

  1. concurrent.futures dataset
  2. python生成序列数(1-10)的立方列表_Python 4.3 创建数值列表(动手试一试)
  3. 查询jsp servelet mysql_JSP + Servlet + JDBC + Mysql 实现增删改查 课程管理系统(示例代码)...
  4. Chrome 开发者工具里的 CSS grid editor
  5. elasticsearch 5.1 问题 ubuntu
  6. MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析
  7. redhat bash: yum: 未找到命令..._常用linux yum 命令和 vim命令,这几个要熟记
  8. 怎样对流媒体进行压力测试_对node工程进行压力测试与性能分析「干货」
  9. 黑客帝国动态特效代码
  10. 在Git项目中使用pre-commit统一管理hooks
  11. LInux usb mouse(鼠标)驱动分析
  12. Visio导出矢量图转eps格式
  13. diy一个android手机版下载,家居3D设计DIY
  14. 在 Shell 脚本中调用另一个 Shell 脚本的三种方式
  15. java对接钉钉发送消息通知
  16. android设置系统app
  17. python3.7反编译生成的.exe
  18. Hyper-V (window 10 家庭版安装 Hyper-V)
  19. 渗透分支写脚本_抖音文案怎么写吸引人?最新文案创作技巧分享(赠文案脚本模板)...
  20. C# 获取汉字拼音首字母(修正X问题,真正修正)

热门文章

  1. PCI PCI-X PCI-E介绍
  2. android 获取照片 权限管理,安卓6.0以上 相册读取图片 权限问题
  3. 阿里云短信接入及注意事项
  4. JQ禁止重复动画效果
  5. ESP32-S2与ESP32和ESP8266对比
  6. aspire鹦鹉螺_aspire鹦鹉螺雾化器如何使用?
  7. 树结构实现多级列表的显示
  8. React Native BLE蓝牙通信 App开发
  9. MongoDB学习文档
  10. CATIA异型面拔模分析命令如何操作?