我在使用MATLAB进行模糊控制系统测试的时候,发现genfis1产生的fis文件在未训练时,通过evalfis函数的输出为0,这是为什么呢,我理解的是genfis1产生的应该是初始模糊系统,即使拟合程度较低,但也不应该全是0
% 生成训练数据
data = [rand(100,1) 10*rand(100,1)-5 rand(100,1)];
% 设置隶属度函数个数和类型
numMFs = [3 5];
mfType = 'gbellmf';
% 生成模糊推理系统
fismat = genfis1(data, numMFs, mfType);
% 提取输入数据和实际输出
inputs = data(:, 1:2);
actualOutput = data(:, 3);
% 计算模糊输出
fisOutput = evalfis(inputs, fismat);
% 绘制模糊输出与实际输出的图像
scatter3(inputs(:, 1), inputs(:, 2), actualOutput, 'filled', 'MarkerFaceColor', 'b');
hold on;
scatter3(inputs(:, 1), inputs(:, 2), fisOutput, 'filled', 'MarkerFaceColor', 'r');
xlabel('Input 1');
ylabel('Input 2');
zlabel('Output');
legend('Actual Output', 'Fuzzy System Output');