fuzarith

Выполните нечеткую арифметику

Синтаксис

C = fuzarith(X,A,B,operator)  

Описание

Используя арифметику интервала, C = fuzarith(X,A,B,operator) возвращает нечеткое множество C как результат применения функции, представленной operator, который выполняет бинарную операцию на выбранных выпуклых нечетких множествах A и B. Элементы A и B выведены от выпуклых функций выбранной вселенной, X:

  • A, B и X являются векторами той же размерности.

  • operator является одним из следующего: 'sum', 'sub', 'prod' и 'div'.

  • Возвращенное нечеткое множество C является вектор-столбцом с той же длиной как X.

Примечание

Нечеткое сложение может сгенерировать сообщение "divide by zero", но это не влияет на точность этой функции.

Примеры

свернуть все

Задайте Гауссовы и Трапециевидные функции принадлежности.

N = 101;
minx = -20;
maxx = 20;
x = linspace(minx,maxx,N);

A = trapmf(x,[-10 -2 1 3]);
B = gaussmf(x,[2 5]);

Оцените сумму, различие и продукт A и B.

Csum = fuzarith(x,A,B,'sum');
Csub = fuzarith(x,A,B,'sub');
Cprod = fuzarith(x,A,B,'prod');

Постройте график результатов.

figure
subplot(3,1,1)
plot(x,A,'b--',x,B,'m:',x,Csum,'c')
title('Fuzzy Addition, A+B')
legend('A','B','A+B')
subplot(3,1,2)
plot(x,A,'b--',x,B,'m:',x,Csub,'c')
title('Fuzzy Subtraction, A-B')
legend('A','B','A-B')
subplot(3,1,3)
plot(x,A,'b--',x,B,'m:',x,Cprod,'c')
title('Fuzzy Product, A*B')
legend('A','B','A*B')

Представлено до R2006a