错误使用 fuzzy 输入参数太多。 出错 shiyan4_1 (第 6 行) fis = fuzzy(x, y, 'mamdani', 'min', 'max', 'centroid');
时间: 2023-11-25 16:06:52 浏览: 59
fis.rar_.fis文件_fis_fuzzy fis
5星 · 资源好评率100%
这个错误是因为在使用fuzzy命令时,输入了超过了命令参数所允许的数量的参数。fuzzy命令的基本语法是:
```
fis = fuzzy(data, method);
```
其中,data是输入输出数据,method是模糊系统的类型(例如'mamdani'或'sugeno')。如果需要对模糊系统的其他设置进行更改,可以使用其他参数(如andMethod、orMethod、impMethod和aggMethod)进行配置。
在你的代码中,输入了5个参数(x,y,'mamdani','min','max'和'centroid'),而fuzzy命令只允许输入2个参数。因此,你需要删除多余的参数,或者使用其他参数进行模糊系统的设置。
下面是一个示例代码,演示如何使用fuzzy命令进行模糊辨识系统的拟合:
```
% 定义输入输出数据
x = 0:0.1:10;
y = sin(x) + randn(size(x));
% 设计模糊系统结构
fis = fuzzy([x', y'], 'mamdani');
% 训练模糊系统
fis = anfis([x', y'], fis);
% 验证模糊系统
y_pred = evalfis(x, fis);
mse = mean((y - y_pred).^2);
% 可视化结果
plot(x, y, 'bx', x, y_pred, 'r-');
legend('真实值', '预测值');
title(['均方误差=', num2str(mse)]);
```
在这个例子中,我们首先将输入输出数据放入一个矩阵中,并将其作为fuzzy命令的第一个参数,将'mamdani'作为第二个参数。接着,我们使用anfis命令进行模糊系统的训练,最后对训练结果进行可视化展示,并计算均方误差作为模型准确性的评估指标。
阅读全文