K-mean matlab 实现代码

一、K均值聚类算法

算法步骤如下:

1、初始化

已知数据集合X,及事先指定聚类的总类数N,在X中随机选取N个对象作为初始的聚类中心。

2、设定迭代终止条件

通常设置最大循环次数或者聚类中心的变化误差。

3、更新样本对象所属类

根据距离准则将数据对象分配到距离最接近的类。

4、更新类的中心位置

将每一类的平均向量作为下次迭代的聚类中心。

5、重复步骤3~4,满足步骤2中的迭代终止条件时,停止

Matlab代码见下图:

K均值聚类算法-Matlab代码

二、K均值聚类算法应用举例

1、随机生成三组数据

随机生成的三组数据

2、指定聚类个数及初始化各类的中心位置

初始化聚类中心

3、调用K均值聚类得到聚类结果

K均值聚类结果

原文地址:https://www.cnblogs.com/hjj-fighting/p/11039288.html

时间: 2024-10-16 22:21:01

K-mean matlab 实现代码的相关文章

编程算法 - 最小的k个数 红黑树 代码(C++)

最小的k个数 红黑树 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入n个整数, 找出其中的最小k个数. 使用红黑树(multiset), 每次替换最大的值, 依次迭代. 时间复杂度: O(nlogk). 代码: /* * main.cpp * * Created on: 2014年6月29日 * Author: wang */ #include <iostream> #include <vector> #includ

深度学习Matlab工具箱代码详解

最近研究了几天深度学习的Matlab工具箱代码,发现作者给出的源码中注释实在是少得可怜,为了方便大家阅读,特对代码进行了注释,与大家分享. 在阅读Matlab工具箱代码之前,建议大家阅读几篇CNN方面的两篇经典材料,对卷积神经网络Matlab工具箱代码的理解有很大帮助,稍后我会将这两篇文献上传到网上与大家分享.急需的也可以留言注明,我会及时发送至邮箱的. (1)<Notes on Convolutional Neural Networks>,这篇文章是与Matlab工具箱代码配套的文献,不过文

借助全新 MATLAB&#174; 适配器代码示例读取英特尔&#174; 实感? 摄像头数据流

下载源代码请访问原文地址:借助全新 MATLAB® 适配器代码示例读取英特尔® 实感™ 摄像头数据流 简介 该可下载代码示例简要介绍了如何使用英特尔® 实感™ SDK 和 MATLAB 的图像采集工具箱适配器套件在 MATLAB® 工作区获取英特尔® 实感™ 摄像头(R200 和 F200)的原始摄像头数据流. 该示例代码支持 MATLAB 开发人员开发面向英特尔® 平台.并具备以下特性的英特尔® 实感™ 应用: 多数据流同步. 同时获取颜色数据流和景深数据流(见图 1). 多摄像头支持. 同时

层次聚类的Matlab实现代码

最近需要用到层次聚类,发现在Matlab上很容易实现,下面是代码加详细注释 clear all clc close all mdist=input('输入坐标文件名字\n'); disp('读取数据坐标') %获取坐标 %文件为二维的坐标,第一列为x轴坐标,第二列为y轴坐标 xx=load(mdist); %获取数据的个数存至number [number, row]=size(xx); %获取距离矩阵,第二参数指定距离计算方法 %可选参数有'euclidean':欧氏距离(默认):'seucli

leach协议matlab仿真代码

http://www.ilovematlab.cn/thread-177006-1-1.html LEACH協議clear;%清除內存變量 xm=100;%x軸範圍ym=100;%y軸範圍 sink.x=0.5*xm;%基站x軸sink.y=0.5*ym;%基站y軸 n=100;%節點總數 p=0.1;%簇頭概率 E0=0.02;%初始能量ETX=50*0.000000000001;%傳輸能量,每bitERX=50*0.000000000001;%接收能量,每bitEfs=10*0.000000

SFM的MATLAB版本代码

% 试着实现 SFM clear all;clc;close all; im1 = rgb2gray(imread('E:\三维重建\matlab_3D_reconstruct\1.jpg')); im2 = rgb2gray(imread('E:\三维重建\matlab_3D_reconstruct\2.jpg')); im1 = im1'; im2 = im2'; [im1, des1, locs1] = siftFunc(im1); [im2, des2, locs2] = siftFun

分水岭算法MATLAB编程代码解析

close all; %% %Step 1: 彩***像->灰度图像 rgb = imread('pears.png'); I = rgb2gray(rgb); figure;subplot(121) imshow(I) %Step 2: 利用梯度实现图像的分割 %使用sobel算子进行边缘检测, text(732,501,'Image courtesy of Corel','FontSize',7,'HorizontalAlignment','right') hy = fspecial('so

matlab 作业代码

A=imread('e:\1\1.tif');%读入图片“1.tif” B=rgb2gray(A);%将图像转换成灰度图像 subplot(121); imshow(A);%显示原图像 title('原图像');%命名 subplot(122) imshow(B);%显示转换后的灰度图像 title('转化后的灰度图像'); C=imhist(B);%灰度图像直方图 figure(2),imhist(B);%显示 title('灰度图像的直方图'); figure(3),imhist(B); t

【Matlab微代码】画一个透明的三维球体并在里面显示一个矢量箭头

在天文领域或者其他一些领域,经常要画一些透明的三维球,其中“透明”可以用alpha函数来设置,矢量箭头可以用quiver3函数来实现. t=linspace(0,pi,25); p=linspace(0,2*pi,25); [theta,phi]=meshgrid(t,p); x=5*sin(theta).*sin(phi); y=5*sin(theta).*cos(phi); z=5*cos(theta); surf(x,y,z,'linestyle','none'); axis equal;