# fismf
一型模糊隶属度函数
函数库:TyFuzzyLogic
# 描述
使用 fismf 对象表示一型模糊隶属度函数。在模糊推理系统(FIS)中,每个输入/输出变量的语言集合由一个或多个隶属度函数定义。有关隶属度函数的详细信息,请参阅《模糊逻辑基础》。
# 创建方式
# 语法
mf = fismf
mf = fismf(type,parameters)
mf = fismf(___,Name=name)
# 说明
mf = fismf 返回一个具有默认类型、参数和名称的一型模糊隶属度函数(MF)。要修改隶属度函数的属性,可使用点标记法。
mf = fismf(type,parameters) 指定隶属度函数的类型和参数。
mf = fismf(___,Name=name) 为上述两种语法创建的隶属度函数指定名称。
# 输入参数
type - 隶属度函数类型"trimf"(默认值)| 字符串 | 字符向量 | 函数句柄
隶属度函数类型,指定为当前工作文件夹或 MLang 路径下的函数名称(字符串/字符向量),也可指定该函数的句柄。指定 type 时必须同时指定 parameters。
下表列出了 type 支持的取值:
| 隶属度函数类型 | 说明 | 参考文档 |
|---|---|---|
| "gbellmf" | 广义钟形隶属度函数 | gbellmf |
| "gaussmf" | 高斯型隶属度函数 | gaussmf |
| "gauss2mf" | 复合高斯型隶属度函数 | addInput |
| "trimf" | 三角形隶属度函数 | trimf |
| "trapmf" | 梯形隶属度函数 | trapmf |
| "linsmf" | 线性 S 型饱和隶属度函数(R2022a 起支持) | linsmf |
| "linzmf" | 线性 Z 型饱和隶属度函数(R2022a 起支持) | linzmf |
| "sigmf" | S 型隶属度函数 | sigmf |
| "dsigmf" | 双 S 型差值隶属度函数 | dsigmf |
| "psigmf" | 双 S 型乘积隶属度函数 | psigmf |
| "zmf" | Z 型隶属度函数 | zmf |
| "pimf" | Π 型隶属度函数 | pimf |
| "smf" | S 型隶属度函数 | smf |
| "constant" | Sugeno 输出隶属度函数专用的常数型隶属度函数 | Sugeno Fuzzy Inference Systems |
| "linear" | Sugeno 输出隶属度函数专用的线性隶属度函数 | Sugeno Fuzzy Inference Systems |
| 字符串/字符向量 | 当前工作文件夹或 MLang 路径下的自定义隶属度函数名称(Sugeno 系统不支持自定义输出隶属度函数) | Build Fuzzy Systems Using Custom Functions |
| 函数句柄 | 当前工作文件夹或 MLang 路径下的自定义隶属度函数句柄(Sugeno 系统不支持自定义输出隶属度函数) | Build Fuzzy Systems Using Custom Functions |
该参数用于设置 Type 属性。
parameters - 隶属度函数参数[0 0.5 1](默认值)| 向量
隶属度函数参数,指定为向量,向量长度取决于隶属度函数类型。指定 parameters 时必须同时指定 type。
该参数用于设置 Parameters 属性。
隶属度函数名称,指定为字符串或字符向量。
该参数用于设置 Name 属性。
# 属性
Name - 隶属度函数名称"mf"(默认值)| 字符串 | 字符向量
隶属度函数名称,指定为字符串或字符向量。
Type - 隶属度函数类型"trimf"(默认值)| 字符串 | 字符向量 | 函数句柄
隶属度函数类型,指定为当前工作文件夹或 MATLAB 路径下的函数名称(字符串/字符向量),也可指定该函数的句柄。
下表描述了 Type 可指定的取值:
| 隶属度函数类型 | 说明 | 参考文档 |
|---|---|---|
| "gbellmf" | 广义钟形隶属度函数 | gbellmf |
| "gaussmf" | 高斯型隶属度函数 | gaussmf |
| "gauss2mf" | 复合高斯型隶属度函数 | addInput |
| "trimf" | 三角形隶属度函数 | trimf |
| "trapmf" | 梯形隶属度函数 | trapmf |
| "linsmf" | 线性 S 型饱和隶属度函数 | linsmf |
| "linzmf" | 线性 Z 型饱和隶属度函数 | linzmf |
| "sigmf" | S 型隶属度函数 | sigmf |
| "dsigmf" | 双 S 型差值隶属度函数 | dsigmf |
| "psigmf" | 双 S 型乘积隶属度函数 | psigmf |
| "zmf" | Z 型隶属度函数 | zmf |
| "pimf" | Π 型隶属度函数 | pimf |
| "smf" | S 型隶属度函数 | smf |
| "constant" | Sugeno 输出隶属度函数专用的常数型隶属度函数 | Sugeno Fuzzy Inference Systems |
| "linear" | Sugeno 输出隶属度函数专用的线性隶属度函数 | Sugeno Fuzzy Inference Systems |
| 字符串/字符向量 | 当前工作文件夹或 MLang 路径下的自定义隶属度函数名称(Sugeno 系统不支持自定义输出隶属度函数) | Build Fuzzy Systems Using Custom Functions |
| 函数句柄 | 当前工作文件夹或 MLang 路径下的自定义隶属度函数句柄(Sugeno 系统不支持自定义输出隶属度函数) | Build Fuzzy Systems Using Custom Functions |
提示
当你使用点标记法修改Type(隶属度函数类型)时,Parameters(参数)中的值会自动转换为适配新隶属度函数类型的格式。
Parameters - 隶属度函数参数[0 0.5 1](默认值)| 向量
隶属度函数参数,指定为向量,向量长度取决于隶属度函数类型。
# 对象函数
| 函数名 | 简介 |
|---|---|
| evalmf | 评估模糊隶属度函数 |
# 示例
创建隶属度函数
using TyFuzzyLogic
mf = fismf;
使用点标记法修改隶属度函数设置。例如,指定一个标准差为 2、均值为 10 的高斯型隶属度函数:
mf = fismf("gaussmf", [2.0, 10.0])
输出结果为:
FISMF("mf", :gaussmf, [2.0, 10.0])
创建指定参数的隶属度函数
创建一个带指定参数的梯形隶属度函数。
using TyFuzzyLogic
mf = fismf("trapmf",[10 15 20 25])
输出结果为:
FISMF("mf", :trapmf, [10.0, 15.0, 20.0, 25.0])
创建指定名称的隶属度函数
创建一个名为 "large" 的隶属度函数。
using TyFuzzyLogic
mf = fismf(Name="large")
输出结果为:
FISMF("large", :trimf, [0.0, 0.5, 1.0])