代码拉取完成,页面将自动刷新
function result = kmedoid(X,c)
N = size(X,1);
%initialization
index=randperm(N);
v=X(index(1:c),:);v = v + 1e-10;
v0=X(index(1:c)+1,:);v0 = v0 - 1e-10;
% dist=zeros(size(X,1),c);
vIndex = zeros(c,1);
while prod(max(abs(v - v0)))
v0 = v;
%Calculating the distances
dist = slmetric_pw(X', v', 'sqdist');
%Assigning clusters
[m,label] = min(dist,[],2);
label = label';
%Calculating cluster centers
for i = 1:c
index=find(label == i);
if ~isempty(index)
vtemp = mean(X(index,:));
[dummy, inx]= min(sum(bsxfun(@minus, X, vtemp).^2,2));
v(i,:) = X(inx,:);
vIndex(i,1) = inx;
else
v(i,:)=X(round(rand*N-1),:);
end
end
end
%results
result.v = v;
result.index = vIndex;
end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。