Membership function not plotting right

2 次查看(过去 30 天)
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.

回答(1 个)

Sam Chak
Sam Chak 2024-9-21
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

类别

Help CenterFile Exchange 中查找有关 Fuzzy Logic Toolbox 的更多信息

产品


版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by