matlab fcm函数
时间: 2023-08-23 20:14:51 浏览: 200
在Matlab中,FCM函数是用于模糊C均值聚类的函数。FCM函数的实现过程中需要编写几个子函数,包括初始化函数initfcm()、一次聚类过程stepfcm()、距离函数distfcm()和画图函数plotfcm()。[1]
其中,初始化函数initfcm()主要用于初始化隶属度矩阵。一次聚类过程stepfcm()包含目标函数、隶属矩阵的计算等等。距离函数distfcm()用于计算数据点与聚类中心之间的距离。画图函数plotfcm()用于绘制聚类结果的图形。[1]
下面是stepfcm()函数的代码实现,其中包括了目标函数、隶属矩阵的计算等等:[2]
```matlab
function [U_new, center, obj_fcn] = stepfcm(data, U, c, expo)
mf = U.^expo;
center = mf*data./((ones(size(data,2),1)*sum(mf'))');
dist = distfcm(center, data);
obj_fcn = sum(sum(dist.^2 * mf));
temp = dist.^(-2/(expo-1));
U_new = temp./(ones(c,1)*sum(temp));
end
```
下面是distfcm()函数的代码实现,用于计算数据点与聚类中心之间的距离:[3]
```matlab
function out = distfcm(center,data)
out = zeros(size(center, 1), size(data, 1));
for k = 1:size(center, 1)
out(k,:) = sqrt(sum(((data - ones(size(data,1),1)*center(k,:)).^2)',1));
end
end
```
至于plotfcm()函数的代码实现,可以根据具体需求进行编写。[1]
希望以上信息能够帮助到您!
阅读全文