Matlab写模糊聚类代码
时间: 2024-01-22 22:51:29 浏览: 41
模糊聚类(Fuzzy Clustering)是一种基于模糊理论的聚类方法,它可以将数据点分成多个模糊的簇,每个数据点对应于不同簇的隶属度可能不同。Matlab中有很多工具箱可以完成模糊聚类,如Fuzzy Logic Toolbox、Neural Network Toolbox等,本文将介绍使用Fuzzy Logic Toolbox实现模糊聚类的代码。
代码如下:
```matlab
% 生成数据
data = [randn(100,2)*0.75+ones(100,2);
randn(100,2)*0.5-ones(100,2)];
% 初始化模糊聚类
options = [NaN NaN NaN 0];
fcm_result = fcm(data, 2, options);
% 绘制聚类结果
figure;
plot(data(fcm_result(1,:) == 1,1), data(fcm_result(1,:) == 1,2), 'ro');
hold on;
plot(data(fcm_result(1,:) == 2,1), data(fcm_result(1,:) == 2,2), 'bo');
```
代码解释:
首先,我们生成了一个二维的数据点集,包含两个簇,每个簇有100个数据点。然后,我们使用fcm函数初始化一个模糊聚类,其中参数2表示分成两个簇。最后,我们将聚类结果绘制出来。
需要注意的是,在fcm函数中,我们将option的前三个参数设为NaN,表示使用默认值。最后一个参数设为0,表示不输出聚类信息。
运行代码,可以看到生成的数据点及其聚类结果,如下图所示:
![模糊聚类结果图](https://img-blog.csdn.net/20170822154713914?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hpdGdwdDI0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
这里,红色点表示属于第一个簇的数据点,蓝色点表示属于第二个簇的数据点。可以看到,使用模糊聚类可以将数据点分成两个簇,并且每个数据点对应于不同簇的隶属度可能不同。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)