2016-08-18 55 views
0

我一直在matlab上工作,我已經設法用兩個數據集繪製kmean聚類,現在我想要做同樣的事情,但有三個數據集。我需要三個數據集創建3D繪圖還是確定只繪製它通常 這就是我一直工作在三個數據集我如何繪製三個數據集聚類

Array=csvread('test.csv'); 
     dataset = Array(:,[1:3]); 
     col1 = Array(:, 1); 
     col2 = Array(:, 2); 
     col3 = Array(:, 3); 
    %dataset [mean+std.deviation *column]; 
     data1 = [3721.17+3872.307*col1]; 
     data2 = [3218.28+4754.122*col2]; 
     data3 = [1541.93+3783.942*col3]; 
     mydata = [data1, data2 ,data3]; 



    [idx,C] = kmeans(data,3,'Distance','cityblock',... 
     'Options',optns); 

我不知道什麼是最好的方式來繪製三個數據集kmean集羣我可以只使用'陰謀'或將是更好,如果我代表它在三維圖 和如何可以創建三個數據集的3d圖

回答

0

我用下面的代碼來近似你的情況。請注意,撥號方式使用mydata,而不是您的代碼中使用的data,因爲沒有稱爲data的變量。

Array=rand(100,3); 
dataset = Array(:,[1:3]); 
col1 = Array(:, 1); 
col2 = Array(:, 2); 
col3 = Array(:, 3); 
%dataset [mean+std.deviation *column]; 
data1 = [3721.17+3872.307*col1]; 
data2 = [3218.28+4754.122*col2]; 
data3 = [1541.93+3783.942*col3]; 
mydata = [data1, data2 ,data3]; 

[idx,C] = kmeans(mydata,3,'Distance','cityblock'); 

然後在3D圖和顏色代碼通過k均值分離,使用scatter3功能。

scatter3(data1,data2,data3,[],idx,'filled'); 

scatter3(mydata(:,1),mydata(:,2),mydata(:,3),[],idx,'filled'); 

在第五輸入參數使用IDX將根據他們是如何從k均值的輸出分組顏色代碼散射點。