2016-08-18 1 views
0

私はmatlabに取り組んできました。私は2つのデータセットでkmeanクラスタをプロットすることに成功しました。私は3つのデータセットの3Dプロットを作成する必要があるか、それはOKだけで、これは私がセットの3つのデータのために取り組んできた私はどのように3つのデータセットのクラスタリングをプロットすることができます

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); 

私は何が最善かわからないものです 通常はそれをプロットすることです3つのデータセットをプロットする方法kmeanクラスター私は3Dプロットで表現すれば 'プロット'しか使用できませんか? と3つのデータセットに対して3dプロットを作成するにはどうすればいいですか?

答えて

0

私は、あなたの状況。手段への呼び出しには、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'); 

そしてscatter3関数を使用し、k平均分離によって3D、及びカラーコードにプロットします。

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

又は

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

5入力引数でIDXの使用は、それらが関数kmeansの出力からグループ化された方法に応じてコードをスキャッタ点を着色します。

関連する問題