addRule throws “Do not use a rule keyword as a variable name.”
I get the error on line 44 of my code: fis = addRule(fis,all); I’ve tried changing the name of the variable name (all) to other names, and the fis. I’ve removed spaces from my variables or renamed them completely.
% Create a Fuzzy Inference System (FIS) with the name "IFR"
fis = mamfis(‘Name’, ‘IFR’);
% Add a variable "input" to the FIS
fis = addInput(fis, [0 200], ‘Name’, ‘MAP_mm’);
% Add membership functions for variable "input"
fis = addMF(fis, "MAP_mm", "trapmf", [0 0 55 75], ‘Name’,"Low");
fis = addMF(fis, "MAP_mm", "trapmf", [55 75 100 120], ‘Name’,"Normal");
fis = addMF(fis, "MAP_mm", "trapmf", [100 120 200 200], ‘Name’,"High");
% HOU trapezoidal
fis = addInput(fis, [0 200], ‘Name’, ‘HOU_ml-hr’);
% HOU Low trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [0 0 30 40], ‘Name’,"Low");
% HOU Normal trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [30 40 100 125], ‘Name’,"Normal");
% HOU High trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [100 125 200 200], ‘Name’,"High");
% Add output variable to the FIS
fis = addOutput(fis, [0 2000], ‘Name’, ‘IFR_ml-hr’);
% Add membership functions for output variable
fis = addMF(fis, "IFR_ml-hr", "trapmf", [0 0 60 100], ‘Name’,"Low");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [0 100 200 400], ‘Name’,"Maintain");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [200 400 600 800], ‘Name’,"Moderate");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [600 800 1000 1500], ‘Name’,"High");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [1000 1500 2000 2000], ‘Name’,"Very_High");
% Create Rules for the FIS
r1 = "If HOU_ml-hr == Low & MAP_mm == Low => IFR_ml-hr == Very_High";
r2 = "If HOU_ml-hr == Normal & MAP_mm == Low => IFR_ml-hr == High";
r3 = "If HOU_ml-hr == High & MAP_mm == Low => IFR_ml-hr == Moderate";
r4 = "If HOU_ml-hr == Low & MAP_mm == Normal => IFR_ml-hr == Moderate";
r5 = "If HOU_ml-hr == Low & MAP_mm == High => IFR_ml-hr == Low";
r6 = "If HOU_ml-hr == Normal & MAP_mm == Normal => IFR_ml-hr == Maintain";
r7 = "If HOU_ml-hr == Normal & MAP_mm == High => IFR_ml-hr == Low";
r8 = "If HOU_ml-hr == High & MAP_mm == Normal =>IFR_ml-hr == Maintain";
r9 = "If HOU_ml-hr == High & MAP_mm == High => IFR_ml-hr == Low";
all = [r1 r2 r3 r4 r5 r6 r7 r8 r9];
% Add rules and enable rule viewing/debugging
fis = addRule(fis,all);
% Evaluate the FIS for inputs [MAP HOU]
sampleInput = [110 120; 60 25; 30 150; 180 90];
out = evalfis(fis, sampleInput);
% Plot membership functions
subplot(3,1,1)
plotmf(fis, ‘input’, 1)
subplot(3,1,2)
plotmf(fis, ‘input’, 2)
subplot(3,1,3)
plotmf(fis, ‘output’,3)I get the error on line 44 of my code: fis = addRule(fis,all); I’ve tried changing the name of the variable name (all) to other names, and the fis. I’ve removed spaces from my variables or renamed them completely.
% Create a Fuzzy Inference System (FIS) with the name "IFR"
fis = mamfis(‘Name’, ‘IFR’);
% Add a variable "input" to the FIS
fis = addInput(fis, [0 200], ‘Name’, ‘MAP_mm’);
% Add membership functions for variable "input"
fis = addMF(fis, "MAP_mm", "trapmf", [0 0 55 75], ‘Name’,"Low");
fis = addMF(fis, "MAP_mm", "trapmf", [55 75 100 120], ‘Name’,"Normal");
fis = addMF(fis, "MAP_mm", "trapmf", [100 120 200 200], ‘Name’,"High");
% HOU trapezoidal
fis = addInput(fis, [0 200], ‘Name’, ‘HOU_ml-hr’);
% HOU Low trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [0 0 30 40], ‘Name’,"Low");
% HOU Normal trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [30 40 100 125], ‘Name’,"Normal");
% HOU High trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [100 125 200 200], ‘Name’,"High");
% Add output variable to the FIS
fis = addOutput(fis, [0 2000], ‘Name’, ‘IFR_ml-hr’);
% Add membership functions for output variable
fis = addMF(fis, "IFR_ml-hr", "trapmf", [0 0 60 100], ‘Name’,"Low");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [0 100 200 400], ‘Name’,"Maintain");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [200 400 600 800], ‘Name’,"Moderate");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [600 800 1000 1500], ‘Name’,"High");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [1000 1500 2000 2000], ‘Name’,"Very_High");
% Create Rules for the FIS
r1 = "If HOU_ml-hr == Low & MAP_mm == Low => IFR_ml-hr == Very_High";
r2 = "If HOU_ml-hr == Normal & MAP_mm == Low => IFR_ml-hr == High";
r3 = "If HOU_ml-hr == High & MAP_mm == Low => IFR_ml-hr == Moderate";
r4 = "If HOU_ml-hr == Low & MAP_mm == Normal => IFR_ml-hr == Moderate";
r5 = "If HOU_ml-hr == Low & MAP_mm == High => IFR_ml-hr == Low";
r6 = "If HOU_ml-hr == Normal & MAP_mm == Normal => IFR_ml-hr == Maintain";
r7 = "If HOU_ml-hr == Normal & MAP_mm == High => IFR_ml-hr == Low";
r8 = "If HOU_ml-hr == High & MAP_mm == Normal =>IFR_ml-hr == Maintain";
r9 = "If HOU_ml-hr == High & MAP_mm == High => IFR_ml-hr == Low";
all = [r1 r2 r3 r4 r5 r6 r7 r8 r9];
% Add rules and enable rule viewing/debugging
fis = addRule(fis,all);
% Evaluate the FIS for inputs [MAP HOU]
sampleInput = [110 120; 60 25; 30 150; 180 90];
out = evalfis(fis, sampleInput);
% Plot membership functions
subplot(3,1,1)
plotmf(fis, ‘input’, 1)
subplot(3,1,2)
plotmf(fis, ‘input’, 2)
subplot(3,1,3)
plotmf(fis, ‘output’,3) I get the error on line 44 of my code: fis = addRule(fis,all); I’ve tried changing the name of the variable name (all) to other names, and the fis. I’ve removed spaces from my variables or renamed them completely.
% Create a Fuzzy Inference System (FIS) with the name "IFR"
fis = mamfis(‘Name’, ‘IFR’);
% Add a variable "input" to the FIS
fis = addInput(fis, [0 200], ‘Name’, ‘MAP_mm’);
% Add membership functions for variable "input"
fis = addMF(fis, "MAP_mm", "trapmf", [0 0 55 75], ‘Name’,"Low");
fis = addMF(fis, "MAP_mm", "trapmf", [55 75 100 120], ‘Name’,"Normal");
fis = addMF(fis, "MAP_mm", "trapmf", [100 120 200 200], ‘Name’,"High");
% HOU trapezoidal
fis = addInput(fis, [0 200], ‘Name’, ‘HOU_ml-hr’);
% HOU Low trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [0 0 30 40], ‘Name’,"Low");
% HOU Normal trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [30 40 100 125], ‘Name’,"Normal");
% HOU High trapezoidal
fis = addMF(fis, "HOU_ml-hr", "trapmf", [100 125 200 200], ‘Name’,"High");
% Add output variable to the FIS
fis = addOutput(fis, [0 2000], ‘Name’, ‘IFR_ml-hr’);
% Add membership functions for output variable
fis = addMF(fis, "IFR_ml-hr", "trapmf", [0 0 60 100], ‘Name’,"Low");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [0 100 200 400], ‘Name’,"Maintain");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [200 400 600 800], ‘Name’,"Moderate");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [600 800 1000 1500], ‘Name’,"High");
fis = addMF(fis, "IFR_ml-hr", "trapmf", [1000 1500 2000 2000], ‘Name’,"Very_High");
% Create Rules for the FIS
r1 = "If HOU_ml-hr == Low & MAP_mm == Low => IFR_ml-hr == Very_High";
r2 = "If HOU_ml-hr == Normal & MAP_mm == Low => IFR_ml-hr == High";
r3 = "If HOU_ml-hr == High & MAP_mm == Low => IFR_ml-hr == Moderate";
r4 = "If HOU_ml-hr == Low & MAP_mm == Normal => IFR_ml-hr == Moderate";
r5 = "If HOU_ml-hr == Low & MAP_mm == High => IFR_ml-hr == Low";
r6 = "If HOU_ml-hr == Normal & MAP_mm == Normal => IFR_ml-hr == Maintain";
r7 = "If HOU_ml-hr == Normal & MAP_mm == High => IFR_ml-hr == Low";
r8 = "If HOU_ml-hr == High & MAP_mm == Normal =>IFR_ml-hr == Maintain";
r9 = "If HOU_ml-hr == High & MAP_mm == High => IFR_ml-hr == Low";
all = [r1 r2 r3 r4 r5 r6 r7 r8 r9];
% Add rules and enable rule viewing/debugging
fis = addRule(fis,all);
% Evaluate the FIS for inputs [MAP HOU]
sampleInput = [110 120; 60 25; 30 150; 180 90];
out = evalfis(fis, sampleInput);
% Plot membership functions
subplot(3,1,1)
plotmf(fis, ‘input’, 1)
subplot(3,1,2)
plotmf(fis, ‘input’, 2)
subplot(3,1,3)
plotmf(fis, ‘output’,3) addrule MATLAB Answers — New Questions









