基本FIS编辑器(MATLAB模糊逻辑工具箱函数)- 联系客服

发布时间 : 星期一 文章基本FIS编辑器(MATLAB模糊逻辑工具箱函数)- 更新完毕开始阅读

例6-25

>>a = readfis('tipper'); >>plotfis(a)

6.2.9 绘制给定变量的所有隶属的曲线

函数 plotmf

格式 plotmf(fismat,varType,varIndex)

说明 此函数绘制与给定变量相关的称为fismat的FIS中的所有隶属函数曲线,变量的类型和索引分别由varType ('input' 或'output')和varIndex给出。此函数也可以与MATLAB函数subplot一起使用。 例6-26

>>a = readfis('tipper'); >>plotmf(a,'input',1)

6.2.10 从磁盘装入一个FIS

函数 readfis

格式 fismat = readfis('filename')

说明 从磁盘上的一个.fis文件(由filename命名)读出一个模糊推理系统,并将产生的FIS装入当前的工作空间中。Fismat = readfis不带输入变量,即没有指定文件名时,使用uigetfile命令打开一个对话框,提示用户指定文件的名称和目录位置。 例6-27

>>fismat = readfis('tipper'); >>getfis(fismat) 返回结果 getfis(fismat) Name = tipper Type = mamdani NumInputs = 2

InLabels = service food NumOutputs = 1 OutLabels = tip NumRules = 3 AndMethod = min OrMethod = max ImpMethod = min AggMethod = max DefuzzMethod = centroid ans = tipper

6.2.11 从FIS中删除某一隶属函数

函数 rmmf

格式 fis = rmmf(fis,'varType',varIndex,'mf',mfIndex)

说明 从与工作空间FIS结构fis相关的模糊推理系统中删除变量类型为varType,索引为varIndex的隶属函数mfIndex。

字符串vartype必须是'input' 或'output'。

varIndex是表示变量索引的一个整数,此索引表示列出变量的顺序; 变量'mf '是表示隶属函数的一个字符串;

mfIndex是表示隶属函数索引的一个整数,此索引表示列出隶属函数的顺序。 例6-28

>>a = newfis('mysys');

>>a = addvar(a,'input','temperature',[0 100]); >>a = addmf(a,'input',1,'cold','trimf',[0 30 60]); >>getfis(a,'input',1) 返回结果

Name = temperature NumMFs = 1 MFLabels = cold

Range = [0 100] ans = [ ]

>>b = rmmf(a,'input',1,'mf',1); >>getfis(b,'input',1) 返回

Name = temperature NumMFs = 0 MFLabels = Range = [0 100] ans = [ ]

6.2.12 从FIS中删除变量

函数 rmvar

格式 [fis2,errorStr] = rmvar(fis,'varType',varIndex)

fis2 = rmvar(fis,'varType',varIndex)

说明 fis2 = rmvar(fis,'varType',varIndex),)从与工作空间FIS结构fis相关的模糊推理系统中删除索引为varIndex的语言变量mfIndex,字符串vartype必须是'input' 或'output'。 varIndex是表示变量索引的一个整数,此索引表示列出变量的顺序。

[fis2,errorStr] = rmvar(fis,'varType',varIndex) 将任何错误信息返回到字符串errorStr。

此命令自动更新规则列表以保证列表尺寸与当前变量数保持一致,在删除语言变量之前,你必须从FIS删除任何包含要删除变量的规则,你无法删除在规则列表中正在使用的模糊变量。 例6-29

>>a = newfis('mysys');

>>a = addvar(a,'input','temperature',[0 100]); >>getfis(a) 返回:

Name = mysys Type = mamdani NumInputs = 1 InLabels = temperature NumOutputs = 0 OutLabels = NumRules = 0 AndMethod = min OrMethod = max ImpMethod = min AggMethod = max DefuzzMethod = centroid

ans = mysys

>>b = rmvar(a,'input',1); >>getfis(b) 返回:

Name = mysys Type = mamdani NumInputs = 0 InLabels = NumOutputs = 0 OutLabels = NumRules = 0 AndMethod = min OrMethod = max ImpMethod = min AggMethod = max DefuzzMethod = centroid ans =mysys