Оцените функцию нечеткого членства
Оцените обобщенную функцию принадлежности в форме колокола через область значений входа значений от 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);
Постройте графики рассчитанных верхнего и нижнего МФ.
plot(x,yUpper,x,yLower) legend('Upper MF','Lower MF','Location','northwest') xlabel('Input') ylabel('Membership value')
mfT1
- Type-1 функции членстваfismf
| вектор объекта fismf
объектыType-1 принадлежности, заданная как fismf
объект или вектор таких объектов.
x
- Входное значениеВходное значение, заданное как скаляр, вектор или 2-D матрица. Если mf
является:
Одинок fismf
объект, затем можно задать x
как скаляр, вектор или матрица
Вектор of fismf
объекты, затем можно задать x
как скаляр или вектор
mfT2
- Type-2 функции членстваfismftype2
объект | массив из fismftype2
объектыType-2 принадлежности, заданная как fismftype2
объект или вектор таких объектов.
y
- Значения принадлежности для функции принадлежности типа 1Значение принадлежности для функции принадлежности типа 1, возвращаемое в виде скаляра, вектора или 2-D матрицы. Если mfT1
является:
Одинок fismf
объект, затем y
является скаляром, вектором или матрицей с такими же размерностями, как x
. Каждый элемент y
- оцененное значение членства для соответствующего элемента x
.
Вектор of fismf
объекты, затем y
является M -by - N матрицей, где M и N являются длинами mfT1
и x
, соответственно. y
(i, j) - оцененное значение функции принадлежности mfT1
(i) для входного значения x
(<reservedrangesplaceholder0>).
yUpper
- Верхние значения членства в MF для функции членства типа 2Верхнее значение принадлежности MF для функции принадлежности типа 2, возвращаемое в виде скаляра, вектора или 2-D матрицы. Если mfT2
является:
Одинок fismftype2
объект, затем y
является скаляром, вектором или матрицей с такими же размерностями, как x
. Каждый элемент y
- оцененное значение членства для соответствующего элемента x
.
Вектор of fismftype2
объекты, затем y
является M -by - N матрицей, где M и N являются длинами mfT2
и x
, соответственно. y
(i, j) - оцененное значение функции принадлежности mfT2
(i) для входного значения x
(<reservedrangesplaceholder0>).
yLower
- более низкие значения членства в MF для функции принадлежности типа 2Более низкое значение принадлежности MF для функции принадлежности типа 2, возвращаемое в виде скаляра, вектора или 2-D матрицы. Если mfT2
является:
Одинок fismftype2
объект, затем y
является скаляром, вектором или матрицей с такими же размерностями, как x
. Каждый элемент y
- оцененное значение членства для соответствующего элемента x
.
Вектор of fismftype2
объекты, затем y
является M -by - N матрицей, где M и N являются длинами mfT2
и x
, соответственно. y
(i, j) - оцененное значение функции принадлежности mfT2
(i) для входного значения x
(<reservedrangesplaceholder0>).
evalmf
теперь принимает fismf
объект как входной параметрПоведение изменено в R2018b
evalmf
теперь принимает fismf
объект как входной параметр, а не тип и параметры функции принадлежности. Кроме того, теперь можно оценить несколько функций членства, передав массив из fismf
объекты, evalmf
. Существуют различия между этими подходами, которые требуют обновления вашего кода.
Ранее вы оценивали функцию принадлежности для заданных входных значений, x
, путем определения типа функции членства, type
, и параметры функций членства, params
.
y = evalmf(x,params,type);
Обновите код, чтобы сначала создать 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.