Оцените нечеткую функцию принадлежности
Оцените обобщенную колоколообразную функцию принадлежности через область значений входных значений от 0 через 10.
x = 0:0.1:10;
mf = fismf("gbellmf",[2 4 6]);
y = evalmf(mf,x);Постройте оценку.
plot(x,y)
xlabel('gbellmf, P = [2 4 6]')
Создайте вектор из трех Гауссовых функций принадлежности.
mf = [fismf("gaussmf",[0.9 2.5],'Name',"low"); fismf("gaussmf",[0.9 5],'Name',"medium"); fismf("gaussmf",[0.9 7.55],'Name',"high")];
Задайте входной диапазон, по которому можно оценить функции принадлежности.
x = (-2:0.1:12)';
Оцените функции принадлежности.
y = evalmf(mf,x);
Постройте результаты оценки.
plot(x,y) xlabel('Input (x)') ylabel('Membership value (y)') legend("low","medium","high")

Создайте треугольную функцию принадлежности типа 2.
mf = fismftype2("trimf",[5 7 9],'LowerLag',0.3,'LowerScale',0.8);
Оцените функцию принадлежности через область значений входных значений от 0 через 10.
x = 0:0.1:10; [yUpper,yLower] = evalmf(mf,x);
Постройте оцененный верхний и более низкий MFS.
plot(x,yUpper,x,yLower) legend('Upper MF','Lower MF','Location','northwest') xlabel('Input') ylabel('Membership value')

mfT1 — Функция принадлежности типа 1fismf возразите | вектор из fismf объектыФункция принадлежности типа 1 в виде a fismf возразите или вектор из таких объектов.
x — Входное значениеВходное значение в виде скаляра, вектора или 2D матрицы. Если mf isa:
Единственный fismf объект, затем можно задать x как скаляр, вектор или матрица
Вектор из fismf объекты, затем можно задать x как скаляр или вектор
mfT2 — Функция принадлежности типа 2fismftype2 возразите | массив fismftype2 объектыФункция принадлежности типа 2 в виде a fismftype2 возразите или вектор из таких объектов.
y — Значения членства для функции принадлежности типа 1Значение членства для функции принадлежности типа 1, возвращенной как скаляр, вектор или 2D матрица. Если mfT1 isa:
Единственный fismf объект, затем y скаляр, вектор или матрица с теми же размерностями как x. Каждый элемент y оцененное значение членства для соответствующего элемента x.
Вектор из fismf объекты, затем y M-by-N матрица, где M и N являются длинами mfT1 и x, соответственно. y(i, j), оцененное значение функции принадлежности mfT1(i) для входного значения xJ.
yUpper — Верхние значения членства в MF для функции принадлежности типа 2Верхнее значение членства в MF для функции принадлежности типа 2, возвращенной как скаляр, вектор или 2D матрица. Если mfT2 isa:
Единственный fismftype2 объект, затем y скаляр, вектор или матрица с теми же размерностями как x. Каждый элемент y оцененное значение членства для соответствующего элемента x.
Вектор из fismftype2 объекты, затем y M-by-N матрица, где M и N являются длинами mfT2 и x, соответственно. y(i, j), оцененное значение функции принадлежности mfT2(i) для входного значения xJ.
yLower — Более низкие значения членства в MF для функции принадлежности типа 2Более низкое значение членства в MF для функции принадлежности типа 2, возвращенной как скаляр, вектор или 2D матрица. Если mfT2 isa:
Единственный fismftype2 объект, затем y скаляр, вектор или матрица с теми же размерностями как x. Каждый элемент y оцененное значение членства для соответствующего элемента x.
Вектор из fismftype2 объекты, затем y M-by-N матрица, где M и N являются длинами mfT2 и x, соответственно. y(i, j), оцененное значение функции принадлежности mfT2(i) для входного значения xJ.
evalmf теперь берет a fismf возразите как входной параметрПоведение изменяется в R2018b
evalmf теперь берет a fismf возразите как входной параметр, а не тип и параметры функции принадлежности. Кроме того, можно теперь оценить несколько функций принадлежности путем передачи массива fismf объекты к evalmf. Существуют различия между этими подходами, которые требуют обновлений вашего кода.
Ранее вы оценивали функцию принадлежности для данных входных значений, x, путем определения типа функции принадлежности, type, и параметры функций принадлежности, params.
y = evalmf(x,params,type);
Обновите свой код, чтобы сначала создать a fismf объект, mf. Затем передайте этот объект evalmf.
mf = fismf(type,params); y = evalmf(mf,x);
Кроме того, ранее, чтобы оценить несколько функций принадлежности вы вызвали evalmf однажды для каждой функции принадлежности.
y1 = evalmf(x,params1,type1); y2 = evalmf(x,params2,type2); y3 = evalmf(x,params3,type3);
Теперь можно оценить несколько функций принадлежности путем передачи массива fismf объекты к evalmf.
mf1 = fismf(type1,params1); mf2 = fismf(type2,params2); mf2 = fismf(type3,params3); y = evalmf([mf1 mf2 mf3],x);
Здесь, y = [y1 y2 y3]';
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.