1 Star 0 Fork 0

Admin/marx_DisPAT

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
kmedoid.m 923 Bytes
一键复制 编辑 原始数据 按行查看 历史
marx 提交于 2021-11-26 19:53 . v1
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
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Matlab
1
https://gitee.com/marx_1_1307066363/marx_-dis-pat.git
git@gitee.com:marx_1_1307066363/marx_-dis-pat.git
marx_1_1307066363
marx_-dis-pat
marx_DisPAT
master

搜索帮助