【转】模糊聚类代码--草木僧
function R = coesim1(datin,m)
% 聚类分析相关系数计算公式1——数量积
% R = coesim1(datin,C)
% m 是乘积和最大值的一个参数,取决于输入数据datin
error(nargchk(2,2, nargin))
[N M] = size(datin);
R=zeros(N,N);
for i = 1:N
for j = 1:N
for k=1:M
R(i,j) = R(i,j) + (datin(i,k)*datin(j,k))/m;
end
end
R(i,i)=1;
end
==========================================================================
function R = coesim2(datin)
% 聚类分析相关系数计算公式2——夹角余弦
% R = coesim2(datin)
error(nargchk(1,1, nargin))
[N M] = size(datin);
R=zeros(N,N);
t=zeros(1,3);
for i = 1:N
for j = 1:N
for k=1:M
t(1)=t(1)+datin(i,k)*datin(j,k);
t(2)=t(2)+datin(i,k)^2;
t(3)=t(3)+datin(j,k)^2;
end
R(i,j) = abs(t(1))/sqrt(t(2)*t(3));
t=zeros(1,3);
end
end
==========================================================================
function R = coesim3(datin)
% 聚类分析相关系数计算公式3——相关系数
% R = coesim3(datin)
error(nargchk(1,1, nargin))
[N M] = size(datin);
R=zeros(N,N);
datinmean = mean(datin');
t=zeros(1,3);
for i = 1:N
for j = 1:N
for k=1:M
t(1)=t(1)+abs((datin(i,k)-datinmean(i))*(datin(j,k)-datinmean(j)));
t(2)=t(2)+(datin(i,k)-dati