2017-02-22 13 views
0

下の図は、いくつかの(x、y)座標のプロットです。図から分かるように、データは、お互いに近いx座標のいくつかの「グループ」に大別される。また、連続したグループ間の距離は変化していることが分かる。互いに接近している座標をグループ化する

x座標の各「グループ」のインデックスを取得したいのですが、それを使って関連するy座標を「選択」することができます。

これまでのところ、私が試した:

[uniqueValues, ~, uniqueIdx] = uniquetol(x_coordinates,tol); 
indices_group1 = find(uniqueIdx == 1); 
x_group1 = x_coordinates(indicesGroup1); 
y_group1 = y_coordinates(indicesGroup1); 

やや私が欲しいものを行いいます。グループ間の距離が変化するためにうまく機能しません。 これにアプローチする方法についてのご意見はありますか?

enter image description here

+0

さまざまな距離がこのコードでどのように影響を与えているかはわかりません。あなたはそれを説明できますか? –

+0

@AnderBiguriおそらくOPはうまく動作する 'tol'を見つけることができませんでした...? –

+0

@ Dev-iL right、それは意味があります。私は自動的にそれをshooseする方法はわかりませんが、私の推測では 'tol = 0.005'がその仕事をするでしょう。 –

答えて

0

1つのオプションはDBScanようなクラスタリングアルゴリズムを使用することです。これはポイントの各「ライン」を個々のクラスターとして分類し、各クラスターのy座標を取得する必要があります。

関連する問題