Membership function not plotting right
2 views (last 30 days)
Show older comments
Hi,
I am creating a triangular membership function (MF) that can be parametrized. A FOR loop is used to construct all the MF.
for j=1:num_MF_input
a=LB+(Base_input*j/2-Base_input/2);
fis = addMF(fis,Name_1D_in,"trimf",[a a+Base_input/2 a+Base_input], ...
'Name',name_MF_input(j));
end
Where num_MF_input is the number of MF, LB is the Lower Boundary of my MF domain, and Base_input is the lenght of the triangle's base.
This seems to work fine when I see the properties of the MF and the parameters (base-tip-base) are as desired (First Figure).
However, when plotting the same MF, there seems to be errors in the tips of some MF, and also in the base.
Would this be just a plotting error and I should not worry since the parameters are right? Or why does this happens?
Thanks.
0 Comments
Answers (1)
Sam Chak
on 21 Sep 2024
Hi @Juan Lopez
Specifying the number of data points (numPoints) in the 'plofmf' command to plot for each MF will solve the problem.
%% Parameters
num_MF_input = 7;
LB = -8;
Base_input = 4;
numPoints = 201;
%% Create a Mamdani FIS object named "Fuzzy_Lopez"
fis = mamfis("Name", "Fuzzy_Lopez");
%% Add an Input variable named "Name_1D_in"
fis = addInput(fis, [LB -LB], "Name", "Name_1D_in");
%% Automate the creation the fuzzy sets
for j=1:num_MF_input
a = LB + (Base_input*j/2 - Base_input/2);
fis = addMF(fis, "Name_1D_in", "trimf", [a a+Base_input/2 a+Base_input]);
end
%% Plot input fuzzy sets
plotmf(fis, 'input', 1, numPoints), grid on, grid minor
0 Comments
See Also
Categories
Find more on Fuzzy Logic Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!