function [C, label, J] = kmeans(I, k)
[m, n, p] = size(I);
X = reshape(double(I), m*n, p);
rng('default');
C = X(randperm(m*n, k), :);
J_prev = inf; iter = 0; J = []; tol = 1e-2;
while true;
iter = iter + 1;
dist = sum(X.^2, 2)*ones(1, k) + (sum(C.^2, 2)*ones(1, m*n))' - 2*X*C';
[~, label] = min(dist, [], 2) ;
for i = 1:k;
C(i, :) = mean(X(label == i , :));
end
J_cur = sum(sum((X - C(label, :)).^2, 2));
J = [J, J_cur];
display(sprintf('#iteration: %03d, objective fcn: %f', iter, J_cur));
if norm(J_cur-J_prev, 'fro') < tol;
break;
end
J_prev = J_cur;
end

qq_38662410
- 粉丝: 6
最新资源
- 第十六章脚手架工程.ppt
- 第四章-人力资源规划.ppt
- 第九章-住宅小区智能化系统设备安装工程-定额.doc
- 建筑工程工程量清单计价案例讲解.ppt
- 财务会计部经理.doc
- 企业数字化学习和知识管理.pptx
- 第9章--室内装饰工程量清单及清单计价.ppt
- 物业管理委托合同gf—2000—1010.doc
- pe管热熔焊接施工工法.doc
- 船舶柴油机厂旧路改造工程监理规划.doc
- 【新能源预测】项目介绍 Python实现基于VMD-NRBO-Transformer-BiCNN变分模态分解(VMD)结合牛顿-拉夫逊优化算法(NRBO)优化Transformer-BiCNN模型多变
- 工程的培训及售后服务.doc
- 造价合约部管理制度.doc
- 基站割接换网工程监理规划.docx
- 幼儿园中班健康教案:保护我们的皮肤.doc
- 地铁工程质量监督管理信息系统的应用.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


