matlab中evalfis函数
时间: 2024-01-23 17:03:52 浏览: 65
在MATLAB中,evalfis函数用于模糊推理,其中evalfis函数是使用FIS(模糊推理系统)结构体和输入值来计算输出值的函数。该函数的语法如下:
```
output = evalfis(input, fis)
```
其中,input是输入变量的值,fis是模糊推理系统的FIS结构体,output是输出变量的计算值。evalfis函数的工作原理是将输入变量的值传递给模糊推理系统,系统根据规则库和模糊推理算法计算输出变量的值,并返回输出变量的计算值。注意,这个函数的输入和输出都是标量或向量。
例如,以下代码演示了如何使用evalfis函数将一个输入向量传递给模糊推理系统,计算输出向量:
```
% 创建一个FIS结构体
fis = newfis('tipper');
% 添加输入变量和它们的隶属度函数
fis = addvar(fis, 'input', 'service', [0 10]);
fis = addmf(fis, 'input', 1, 'poor', 'trimf', [0 0 5]);
fis = addmf(fis, 'input', 1, 'good', 'trimf', [0 5 10]);
fis = addmf(fis, 'input', 1, 'excellent', 'trimf', [5 10 10]);
fis = addvar(fis, 'input', 'food', [0 10]);
fis = addmf(fis, 'input', 2, 'rancid', 'trapmf', [0 0 1 3]);
fis = addmf(fis, 'input', 2, 'delicious', 'trapmf', [7 9 10 10]);
% 添加输出变量和它们的隶属度函数
fis = addvar(fis, 'output', 'tip', [0 30]);
fis = addmf(fis, 'output', 1, 'cheap', 'trimf', [0 0 15]);
fis = addmf(fis, 'output', 1, 'average', 'trimf', [0 15 30]);
fis = addmf(fis, 'output', 1, 'generous', 'trimf', [15 30 30]);
% 添加规则
ruleList = [1 1 1 2 1;
2 2 1 1 1;
3 3 1 3 1;
1 2 2 1 1;
2 3 2 2 1;
3 1 2 3 1;
1 3 3 2 1;
2 1 3 1 1;
3 2 3 3 1];
fis = addrule(fis, ruleList);
% 计算输出
input = [5 8];
output = evalfis(input, fis);
```
在这个例子中,我们创建了一个FIS结构体,添加了输入变量和它们的隶属度函数,添加了输出变量和它们的隶属度函数,然后添加了规则。最后,我们使用evalfis函数将输入向量(服务值为5,食品值为8)传递给模糊推理系统,并得到输出向量。