2017-03-23 10 views
1

2次元平面内にランダムに配置された点をいくつか考えてみましょう。ポイントは、飛行機の異なる場所にクラスタを作ることができます。 (クラスタを定義する:各クラスタには、少なくともクラスタの1つの近傍点があり、これらの2点間の距離は特定の長さ(R)より小さい) 良い質問は、ポイントの位置を持つことによってクラスターの数とそれらのサイズを見つける?誰でもMatlabで回答を提供できますか? コードでサポートされるすべての回答が高く評価されます。Matlabの2次元平面内のクラスタリングポイント

まだ回答がありませんので、私は質問をより明確にしようとします。いななき行列の要素(N、M)は1、パーティクルnおよびmが接続されているに等しい場合

n=10; %number of points 
R=2; 
x=rand(1,n).*5; %position of points 
y=rand(1,n).*5; 
neigh=[]; 

for number = 1:n; 
distance(1:n) = (ones(1,n).*x(number)-x).^2 + (ones(1,n).*y(number)-y).^2; 
neighbour_s = distance < R^2; 
neigh= [neigh;neighbour_s]; 
end 

: Iは、2個の粒子がRよりも小さい距離を有する示す行列を見つけることができます。彼らは同じクラスタにいます。粒子mが粒子kに接続されている場合、粒子m、nおよびkは同じクラスタ内にある。隣接行列を使ってクラスターを見つけるにはどうすればいいですか?

+1

kmeansまたはclusterdata関数を試しましたか? – Ozcan

+0

いいえ、クラスタの数を指定していません@Ozcan –

+0

パーンウィンドウ密度推定を試しましたか? – Ozcan

答えて

1

Statistics Toolboxを所有している場合は、k-meansを使用してクラスタリングを行うことができますが、クラスタ番号を自分で設定する必要があります。

編集:これは簡単な例です。

cluster_number = 3; % Set yout cluster number 
data = rand(100,2); % Set your data you want to cluster 
idx = kmeans(data, cluster_number); % idx is the index array, for each sample data 
+0

コードボックスでツールボックスなしで可能になるはずです –

+0

私はコードをサポートしてくれますか?私はk-meansとclusterdataのmatlabヘルプを理解できませんか? –

関連する問題