Main Content

evalmf

Evaluate fuzzy membership function

Description

y = evalmf(mfT1,x) evaluates one or more type-1 membership functions based on the input values in x, returning the membership function values.

example

[yUpper,yLower] = evalmf(mfT2,x) evaluates one or more type-2 membership function based on the input values in x, returning both the upper and lower membership function values.

example

Examples

collapse all

Evaluate a generalized bell-shaped membership function across a range of input values from 0 through 10.

x = 0:0.1:10;
mf = fismf("gbellmf",[2 4 6]);
y = evalmf(mf,x);

Plot the evaluation.

plot(x,y)
xlabel('gbellmf, P = [2 4 6]')

Figure contains an axes object. The axes object with xlabel gbellmf, P = [2 4 6] contains an object of type line.

Create a vector of three Gaussian membership functions.

mf = [fismf("gaussmf",[0.9 2.5],'Name',"low");
      fismf("gaussmf",[0.9 5],'Name',"medium");
      fismf("gaussmf",[0.9 7.55],'Name',"high")];

Specify the input range over which to evaluate the membership functions.

x = (-2:0.1:12)';

Evaluate the membership functions.

y = evalmf(mf,x);

Plot the evaluation results.

plot(x,y)
xlabel('Input (x)')
ylabel('Membership value (y)')
legend("low","medium","high")

Figure contains an axes object. The axes object with xlabel Input (x), ylabel Membership value (y) contains 3 objects of type line. These objects represent low, medium, high.

Create a triangular type-2 membership function.

mf = fismftype2("trimf",[5 7 9],'LowerLag',0.3,'LowerScale',0.8);

Evaluate the membership function across a range of input values from 0 through 10.

x = 0:0.1:10;
[yUpper,yLower] = evalmf(mf,x);

Plot the evaluated upper and lower MFs.

plot(x,yUpper,x,yLower)
legend('Upper MF','Lower MF','Location','northwest')
xlabel('Input')
ylabel('Membership value')

Figure contains an axes object. The axes object with xlabel Input, ylabel Membership value contains 2 objects of type line. These objects represent Upper MF, Lower MF.

Input Arguments

collapse all

Type-1 membership function, specified as a fismf object or a vector of such objects.

Input value, specified as a scalar, vector, or 2-D matrix. If mf is a:

  • Single fismf object, then you can specify x as a scalar, vector, or matrix

  • Vector of fismf objects, then you can specify x as a scalar or vector

Type-2 membership function, specified as a fismftype2 object or a vector of such objects.

Output Arguments

collapse all

Membership value for a type-1 membership function, returned as a scalar, vector, or 2-D matrix. If mfT1 is a:

  • Single fismf object, then y is a scalar, vector, or matrix with the same dimensions as x. Each element of y is the evaluated membership value for the corresponding element of x.

  • Vector of fismf objects, then y is an M-by-N matrix, where M and N are the lengths of mfT1 and x, respectively. y(i,j) is the evaluated value of membership function mfT1(i) for input value x(j).

Upper MF membership value for a type-2 membership function, returned as a scalar, vector, or 2-D matrix. If mfT2 is a:

  • Single fismftype2 object, then y is a scalar, vector, or matrix with the same dimensions as x. Each element of y is the evaluated membership value for the corresponding element of x.

  • Vector of fismftype2 objects, then y is an M-by-N matrix, where M and N are the lengths of mfT2 and x, respectively. y(i,j) is the evaluated value of membership function mfT2(i) for input value x(j).

Lower MF membership value for a type-2 membership function, returned as a scalar, vector, or 2-D matrix. If mfT2 is a:

  • Single fismftype2 object, then y is a scalar, vector, or matrix with the same dimensions as x. Each element of y is the evaluated membership value for the corresponding element of x.

  • Vector of fismftype2 objects, then y is an M-by-N matrix, where M and N are the lengths of mfT2 and x, respectively. y(i,j) is the evaluated value of membership function mfT2(i) for input value x(j).

Version History

Introduced before R2006a

expand all

Go to top of page