📄 fcm1.m
字号:
function [center,obj_fcn] = fcm1(center,data,cluster_n)
data_n = size(data,1);
in_n = size(data,2);
% Change the following to set default options
default_options = [2; % exponent for the partition matrix U
100; % max. number of iteration
1e-5; % min. amount of improvement
1]; % info display during iteration
options = default_options;
expo = options(1); % Exponent for U
max_iter = options(2); % Max. iteration
min_impro = options(3); % Min. improvement
display = options(4); % Display info or not
obj_fcn = zeros(max_iter, 1); % Array for objective function
dist = distfcm(center, data); % fill the distance matrix
tmp = dist.^(-2/(expo-1)); % calculate new U, suppose expo != 1
U= tmp./(ones(cluster_n, 1)*sum(tmp));
% Main loop
for i = 1:max_iter,
[U, center, obj_fcn(i)] = stepfcm(data, U, cluster_n, expo);
% if display,
% fprintf('Iteration count = %d, obj. fcn = %f\n', i, obj_fcn(i));
% end
%check termination condition
if i > 1,
if abs(obj_fcn(i) - obj_fcn(i-1)) < min_impro, break; end,
end
end
iter_n = i; % Actual number of iterations
obj_fcn(iter_n+1:max_iter) = [];
obj_fcn=obj_fcn(i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -