Добавьте функцию принадлежности в нечеткую переменную
fisOut = addMF(fisIn,varName)fisOut = addMF(fisIn,varName,type,parameters)fisOut = addMF(___,Name,Value)varOut = addMF(varIn)varOut = addMF(varIn,type,parameters)varOut = addMF(___,Name,Value) добавляет функция принадлежности с заданным типом и параметрами.fisOut = addMF(fisIn,varName,type,parameters)
конфигурирует функцию принадлежности с помощью одного или нескольких аргументов пары "имя-значение".fisOut = addMF(___,Name,Value)
добавляет функция принадлежности с заданным типом и параметрами.varOut = addMF(varIn,type,parameters)
задает имя функции принадлежности с помощью аргумента пары "имя-значение" varOut = addMF(___,Name,Value)Name.
Создайте Mamdani нечеткая система и добавьте три входных переменные и одну выходную переменную. В данном примере дайте второй входной переменной и выходной переменной то же имя.
fis = mamfis; fis = addInput(fis,[0 80],"Name","speed"); fis = addInput(fis,[0 100],"Name","throttle"); fis = addInput(fis,[0 10],"Name","distance"); fis = addOutput(fis,[0 100],"Name","throttle");
Добавьте функцию принадлежности в первую входную переменную, задав трапециевидную функцию принадлежности, и установите параметры функции принадлежности.
fis = addMF(fis,"speed","trapmf",[-5 0 10 30]);
Можно также задать имя членства, когда вы добавляете его в нечеткую систему. Добавьте функцию принадлежности под названием "high" к первой входной переменной.
fis = addMF(fis,"speed","trapmf",[50 70 80 85],'Name',"high");
Просмотрите функции принадлежности для первой входной переменной.
plotmf(fis,"input",1)
Если ваша система имеет входную переменную с тем же именем как выходная переменная, необходимо задать тип переменной при добавлении функции принадлежности. Например, добавьте функцию принадлежности в выходную переменную.
fis = addMF(fis,"throttle","trimf",[0 20 40],'VariableType',"output"); plotmf(fis,"output",1)

Также можно добавить функцию принадлежности по умолчанию в нечеткую систему и установить ее параметры с помощью записи через точку. Например, добавьте и сконфигурируйте функцию принадлежности для третьей входной переменной.
fis = addMF(fis,"distance"); fis.Inputs(3).MembershipFunctions(1).Type = "trapmf"; fis.Inputs(3).MembershipFunctions(1).Parameters = [-1 0 2 4]; plotmf(fis,"input",3)

Создайте нечеткую переменную с заданной областью значений.
var = fisvar([0 1]);
Добавьте функцию принадлежности в переменную, задав трапециевидную функцию принадлежности, и установите параметры функции принадлежности.
var = addMF(var,"trapmf",[-0.5 0 0.2 0.4]);Можно также задать имя членства, когда вы добавляете его в нечеткую переменную. Например, добавьте функцию принадлежности под названием "large".
var = addMF(var,"trapmf",[0.6 0.8 1 1.5],'Name',"large");
Просмотрите функции принадлежности.
var.MembershipFunctions
ans =
1x2 fismf array with properties:
Name
Type
Parameters
Details:
Name Type Parameters
_______ ________ ____________________________
1 "mf1" "trapmf" -0.5 0 0.2 0.4
2 "large" "trapmf" 0.6 0.8 1 1.5
Также можно добавить функцию принадлежности по умолчанию в нечеткую переменную и установить ее параметры с помощью записи через точку.
var = fisvar([0 1]);
var = addMF(var);
var.MembershipFunctions(1).Type = "trapmf";
var.MembershipFunctions(1).Parameters = [-0.5 0 0.2 0.4];fisIn — Нечеткая система выводаmamfis | объект sugfisНечеткая система вывода, заданная как объект mamfis или sugfis.
varName Имя переменнойИмя переменной, заданное как строка или вектор символов. Можно задать имя любого переменная ввода или вывода в FIS. Если ваша система имеет входную переменную с тем же именем как выходная переменная, задайте тип переменной, вы хотите добавить функцию принадлежности в использование пары "имя-значение" VariableType.
ввод Тип функции принадлежности"trimf" (значение по умолчанию) | представляет в виде строки | вектор символов | указатель на функциюТип функции принадлежности, заданный как строка или вектор символов, который содержит имя функции в текущей рабочей папке или на пути MATLAB®. Можно также задать указатель на такую функцию. Когда вы задаете type, необходимо также задать parameters.
Эта таблица описывает значения, которые можно задать для type.
| Тип функции принадлежности | Описание | Для получения дополнительной информации |
|---|---|---|
"gbellmf" | Обобщенная колоколообразная функция принадлежности | gbellmf |
"gaussmf" | Гауссова функция принадлежности | gaussmf |
"gauss2mf" | Гауссова функция принадлежности комбинации | gauss2mf |
"trimf" | Треугольная функция принадлежности | trimf |
"trapmf" | Трапециевидная функция принадлежности | trapmf |
"sigmf" | Сигмовидная функция принадлежности | sigmf |
"dsigmf" | Различие между двумя сигмовидными функциями принадлежности | dsigmf |
"psigmf" | Продукт двух сигмовидных функций принадлежности | psigmf |
"zmf" | Z-образная функция принадлежности | zmf |
"pimf" | Функция принадлежности, имеющая форму пи | pimf |
"smf" | S-образная функция принадлежности | smf |
"constant" | Постоянная функция принадлежности (не поддерживаемый для выходных переменных систем Mamdani или для любых входных переменных) | Что такое Sugeno-тип нечеткий вывод? |
"linear" | Линейная функция принадлежности (не поддерживаемый для выходных переменных систем Mamdani или для любых входных переменных) | |
| Строка или вектор символов | Имя пользовательской функции принадлежности в текущей рабочей папке или на пути MATLAB. Пользовательские функции не поддерживаются для выходных переменных систем Sugeno. | Создайте нечеткие системы Используя пользовательские функции |
| Указатель на функцию | Обработайте к пользовательской функции принадлежности в текущей рабочей папке или на пути MATLAB. Пользовательские функции не поддерживаются для выходных переменных систем Sugeno. |
параметры Параметры функции принадлежности[0 0.5 1] (значение по умолчанию) | векторПараметры функции принадлежности, заданные как вектор. Длина вектора параметра зависит от типа функции принадлежности. Когда вы задаете parameters, необходимо также задать type.
varIn — FuzzyfisvarНечеткая переменная, заданная как объект fisvar.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Name',"large" указывает, что функция принадлежности называет "large"Имя Имя функции принадлежностиИмя функции принадлежности, заданное как пара, разделенная запятой, состоящая из 'Name' и строки или вектора символов. Именем функции принадлежности по умолчанию является "mf<uniqueIndex>", где uniqueIndex автоматически сгенерирован на основе текущего количества функций принадлежности в связанной переменной.
'VariableType' — Тип переменной"input" | "output"Тип переменной, заданный как пара, разделенная запятой 'VariableType' и одно из следующего:
входной параметр Входная переменная
вывод Выходная переменная
Если ваша система имеет входную переменную с тем же именем как выходная переменная, задайте который переменная добавить функцию принадлежности в VariableType.
Эта пара "имя-значение" применяется только при добавлении функции принадлежности в объект mamfis или sugfis.
fisOut — Нечеткая система выводаmamfis | объект sugfisНечеткая система вывода, возвращенная как объект mamfis или sugfis. fisOut содержит добавленную функцию принадлежности со всеми другими свойствами, совпадающими со свойствами fisIn.
varOut — FuzzyfisvarНечеткая переменная, возвращенная как объект fisvar. varOut содержит добавленную функцию принадлежности со всеми другими свойствами, совпадающими со свойствами varIn.
Поведение изменяется в R2018b
Имя и поведение функции addmf изменились. Теперь:
addmf является addMF
Вы задаете переменную, в которую вы хотите добавить функцию принадлежности по наименованию, а не индексом.
Вы задаете имя функции принадлежности с помощью аргумента пары "имя-значение".
Эти изменения требуют обновлений вашего кода.
Следующая таблица показывает некоторые типичные использования addmf для добавления функций принадлежности к нечетким переменным и как обновить ваш код. В этой таблице fis является нечеткой системой вывода с двумя входными параметрами, service и food, и одним выводом, tip.
| Если ваш код имеет эту форму: | Используйте этот код вместо этого: |
|---|---|
fis = addmf(fis'input',1,...
'poor',...
'gaussmf',[1.5 0]) |
fis = addMF(fis,"service",...
"gaussmf",[1.5 0],
'Name',"poor") |
fis = addmf(fis,'input',2,...
'rancid',...
'trapmf',[-2 0 1 3]) |
fis = addMF(fis,"food",...
"trapmf",[-2 0 1 3],...
'Name',"rancid") |
fis = addmf(fis,'output',1,...
'cheap',...
'trimf',[0 5 10]) |
fis = addMF(fis,"tip",...
"trimf",[0 5 10],...
'Name',"cheap") |
Не рекомендуемый запуск в R2018b
Поддержка представления нечетких систем вывода как структуры будет удалена в будущем релизе. Используйте mamfis и объекты sugfis вместо этого. Существуют различия между этими представлениями, которые требуют обновлений вашего кода. Эти различия включают:
Имена свойства объекта, которые отличаются от соответствующих полей структуры.
Объекты хранят текстовые данные как строки, а не как векторы символов.
Кроме того, все функции Fuzzy Logic Toolbox™, которые приняли или возвратили нечеткие системы вывода как структуры теперь, принимают и возвращают или mamfis или объекты sugfis.
Чтобы преобразовать существующие нечеткие структуры системы вывода в объекты, используйте функцию convertfis.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.