2017-04-18 26 views
0

(Matlab問題)如何將數據點集羣到預定義區域?

我有一組數據點,我想聚集到預定義的點。

我的數據點是一個MxN矩陣。每一行M是一條曲線。我想將每條曲線分配給給定的一組曲線PxN。例如。 P = 5,5追求曲線。

所以最後它應該將每個MxN曲線分配給PxN中的曲線。

最簡單的方法是使用kmeans進行0次迭代。 使用相關性給了我很差的結果。 在Matlab中有一個簡單的方法嗎?

非常感謝您的回答。 乾杯 金寶

+0

解決它自己: 爲WC = 1:長度(數據集(:,1)) 對於i = 1:長度(中心(:,1)) DIST(I,WC)=總和( ((DataSet(WC,T) - centers(i,T))。^ 2)); (WC)= 012x idx_dcb(WC)= idx_temp; end –

+0

「聚類」意味着算法必須推斷聚類結構。你想做分類:標籤點與預定義的類。嘗試最近鄰居分類。 –

回答

0

解決它自己,這樣的事情

T=1:360 
centers = rand(4,360) 
DataSet = rand(200,360) 

    for WC=1:length(DataSet(:,1)) 

     for i=1:length(centers(:,1)) 

      dist(i,WC) = sum(((DataSet(WC,T) - centers(i,T)).^2)); 
     end 
      [temp, idx_temp] = min(dist(:,WC)) 

      idx_dcb(WC) = idx_temp; 
    end 

idx_dcb是您的分配組的索引。

+0

使用短路距離 –