Оценить нечеткую функцию членства
Оценка обобщенной колоколообразной функции членства в диапазоне входных значений из 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);
Постройте график оцененных верхнего и нижнего MF.
plot(x,yUpper,x,yLower) legend('Upper MF','Lower MF','Location','northwest') xlabel('Input') ylabel('Membership value')

mfT1 - функция членства в Type-1fismf объект | вектор fismf объектыType-1 функция членства, заданная как fismf объект или вектор таких объектов.
x - Входное значениеВходное значение, указанное как скаляр, вектор или 2-D матрица. Если mf является:
Одинок fismf объект, затем можно указать x как скаляр, вектор или матрица
Вектор fismf объекты, то можно указать x как скаляр или вектор
mfT2 - функция членства в Type-2fismftype2 объект | массив fismftype2 объектыType-2 функция членства, заданная как fismftype2 объект или вектор таких объектов.
y - Значения членства для функции членства типа 1Значение членства для функции членства типа 1, возвращаемое как скаляр, вектор или 2-D матрица. Если mfT1 является:
Одинок fismf объект, затем y - скаляр, вектор или матрица с теми же размерами, что и x. Каждый элемент y - вычисленное значение членства для соответствующего элемента x.
Вектор fismf объекты, то y - матрица M-на-N, где M и N - длины mfT1 и xсоответственно. y(i, j) - вычисленное значение функции членстваmfT1(i) для входного значения x(j).
yUpper - Верхние значения членства MF для функции членства типа 2Верхнее значение членства MF для функции членства типа 2, возвращаемое в виде скалярной, векторной или 2-D матрицы. Если mfT2 является:
Одинок fismftype2 объект, затем y - скаляр, вектор или матрица с теми же размерами, что и x. Каждый элемент y - вычисленное значение членства для соответствующего элемента x.
Вектор fismftype2 объекты, то y - матрица M-на-N, где M и N - длины mfT2 и xсоответственно. y(i, j) - вычисленное значение функции членстваmfT2(i) для входного значения x(j).
yLower - более низкие значения членства MF для функции членства типа 2;Меньшее значение членства MF для функции членства типа 2, возвращаемое в виде скалярной, векторной или 2-D матрицы. Если mfT2 является:
Одинок fismftype2 объект, затем y - скаляр, вектор или матрица с теми же размерами, что и x. Каждый элемент y - вычисленное значение членства для соответствующего элемента x.
Вектор fismftype2 объекты, то y - матрица M-на-N, где M и N - длины mfT2 и xсоответственно. y(i, j) - вычисленное значение функции членстваmfT2(i) для входного значения x(j).
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.