gpt4 book ai didi

matlab - Kmeans在matlab中绘图

转载 作者:行者123 更新时间:2023-11-30 09:24:16 25 4
gpt4 key购买 nike

我正在做一个基于 matlab 的拇指识别系统项目。我实现了 Kmean 算法,也得到了结果。实际上现在我想绘制像 here 这样的结果他们做到了。我正在尝试但无法做到这一点。我正在使用以下代码。

load training.mat; % loaded just to get trainingData variable

labelData = zeros(200,1);
labelData(1:100,:) = 0;
labelData(101:200,:) = 1;

k=2;

[trainCtr, traina] = kmeans(trainingData,k);

trainingResult1=[];

for i=1:k
trainingResult1 = [trainingResult1 sum(trainCtr(1:100)==i)];
end

trainingResult2=[];

for i=1:k
trainingResult2 = [trainingResult2 sum(trainCtr(101:200)==i)];
end

load testing.mat; % loaded just to get testingData variable

c1 = zeros(k,1054);

c1 = traina;

cluster = zeros(200,1);

for j=1:200
testTemp = repmat(testingData(j,1:1054),k,1);
difference = sum((c1 - testTemp).^2, 2);

[value index] = min(difference);
cluster(j,1) = index;
end

testingResult1 = [];

for i=1:k
testingResult1 = [testingResult1 sum(cluster(1:100)==i)];
end

testingResult2 = [];

for i=1:k
testingResult2 = [testingResult2 sum(cluster(101:200)==i)];
end

在上面的代码中,trainingData 是 200 X 1054 的矩阵,其中 200 个是拇指图像,1054 个是列。实际上每个图像都是 25 X 42。我将每个图像重新整形为行矩阵 (1 X 1050) 和其他 4 个(一些特征)列,因此每个图像中总共有 1054 列。类似地 testingData 我以与我制作 testingData 类似的方式制作它,它也是 200 X 1054 的顺序。现在我的问题只是绘制结果,就像他们在here .

最佳答案

选择2个功能后,您可以按照示例进行操作。开始绘制图形,使用 hold on,然后使用 plotscatter 绘制质心和数据点。例如。

selectedFeatures = [42,43];
plot(trainingData(trainCtr==1,selectedFeatures(1)),
trainingData(trainCtr==1,selectedFeatures(2)),
'r.','MarkerSize',12)

将绘制集群 1 中数据点的选定特征值。

关于matlab - Kmeans在matlab中绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10869816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com