求助!Weighted-K-means聚类模型matlab…报错
代码来自https://blog.csdn.net/weixin_40457801/article/details/88725649
Error in ==> kmeans_w_03 at 133
cluster_energy(j) = sum (( point(1:dim_num ,i) - cluster_center(1:dim_num,j)).^2 );
这行代码我本人也没看懂,有大佬可以给讲一下吗。。。
%%如[a,b,c,d]=kmeans_w_03 ( 2, 77, 3, 100, cc', w, 1, clusters' )
%%2为维度即经纬度,77为城市数,3为聚类点,100为迭代次数,cc为经纬度数据,w权重数据,由excel导入matlab即可
%%其中cluster为三个聚类点初始点,这里可以自己用matlab随便输入,但要在图中,推荐取 -66 -66 -66;18 18 18
%%1为原先类别,取1就行
%%输出二维数据b即为聚类点经纬度,a为各点的类别123
dim_num=2;
point_num=10;
cluster_num=3;
it_max=100;
point=[
-66.7673674 18.4538102
-66.2252681 18.3764838
-66.1305131 18.3892246
-66.1323416 18.2345098
-65.6738796 18.3332482
-67.033485 18.317459
-67.0121989 18.3845091
-66.9388432 18.2948976
-66.9454346 18.3698359
-66.781264 18.435818];
weight= [2.10302000000000
3.29820000000000
3.72980000000000
3.21730000000000
5
1.02307000000000
0.920570000000000
0.920570000000000
1.23887000000000
1.13637000000000];
cluster=[-66 -66 -66;18 18 18];
if ( cluster_num < 1 )
fprintf ( 1, '\n' );
fprintf ( 1, 'KMEANS_W_03 - Fatal error!\n' );
fprintf ( 1, ' CLUSTER_NUM < 1.\n' );
error ( 'KMEANS_W_03 - Fatal error!' )
end
if ( dim_num < 1 )
fprintf ( 1, '\n' );
fprintf ( 1, 'KMEANS_W_03 - Fatal error!\n' );
fprintf ( 1, ' DIM_NUM < 1.\n' );
error ( 'KMEANS_W_03 - Fatal error!' )
end
if ( point_num < 1 )
fprintf ( 1, '\n' );
fprintf ( 1, 'KMEANS_W_03 - Fatal error!\n' );
fprintf ( 1, ' POINT_NUM < 1.\n' );
error ( 'KMEANS_W_03 - Fatal error!' )
end
if ( it_max < 0 )
fprintf