作业帮 > 综合 > 作业

matlab的题目,利用K均值算法对以下30个点集合实施聚类.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 21:12:36
matlab的题目,利用K均值算法对以下30个点集合实施聚类.
实验题:利用K均值算法对以下30个点集合实施聚类.
10个点:
X方向:均值3,方差1.2
Y方向:均值6,方差1.1
10个点:
X方向:均值5,方差1.2
Y方向:均值8,方差1.1
10个点:
X方向:均值1,方差1.2
Y方向:均值4,方差1.1
要求将聚类结果在MATLAB图像中绘出,不同的类用不同的颜色和式样标注.
注:初始3个质心点随机从这30个点中选取
x1=1.2*randn(10,1)+3
y1=1.1*randn(10,1)+6
a=[x1,y1]
x2=1.2*randn(10,1)+5
y2=1.1*randn(10,1)+8
b=[x2,y2]
x3=1.2*randn(10,1)+1
y3=1.1*randn(10,1)+4
c=[x3,y3]
d=[a;b;c]
[ldx,c]=kmeans(d,3,'dist','city','rep',5,'disp','final')
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
hold on
plot(X(idx==3,1),X(idx==3,2),'g.','MarkerSize',12)
以上我自己写的 可是运行不对呀
这种问题明显是取巧的题目,是不是老师布置的作业呀.建议你还是自己认真做做吧,如果有具体的问题我想会有很多人帮你的.但不是帮你偷懒.
帮你修改好了,从你所犯错误看,你的编程水平还处于初级阶段.希望我花费的时间对你编程有帮助,我是一个大学老师,经常发现我的学生对改过的作业根本不看.希望你不是如此.建议你把我改过的地方,以及为什么这样改给我回个帖.
x1=1.2*randn(10,1)+3
y1=1.1*randn(10,1)+6
a=[x1,y1]
x2=1.2*randn(10,1)+5
y2=1.1*randn(10,1)+8
b=[x2,y2]
x3=1.2*randn(10,1)+1
y3=1.1*randn(10,1)+4
c=[x3,y3]
X=[a;b;c]
[idx,c]=kmeans(X, 3, 'dist','city', 'rep',5, 'disp','final')
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
hold on
plot(X(idx==3,1),X(idx==3,2),'g.','MarkerSize',12)
再问: 就改了那个 x=[a;b;c] ? 这个是我打快了。 我感觉这样不对呀。 那个c没用到哎
再答: 对呀,有时候就是一个小问题。 我帮你改成X了(你当然也可以用c),因为这样可以和后面的X保持一致。