2013-02-21 3 views
1

У меня есть координаты облака точек, хранящихся в матрице. Немногие из точек изолированы от других. Кто-нибудь знает, как я могу их удалить? Точки показаны на рисунке. Я был бы признателен, если бы вы могли мне помочь, потому что я не парень математики :( Поскольку я новый пользователь, я не мог загрузить изображение, однако точки внизу показывают набор данных с 4 разбросанными точками, которые я хочу удалить.Как удалить рассеянные точки из набора данных

 ....... 
........ 
    ......... 
    .........   . 
    ..........  .. 
    ......   . 
    ..... 
    ...
+0

Я думаю, что вы можете построить точки как графики, а затем удалить их с помощью метода в [здесь] (http://mathematica.stackexchange.com/questions/3566/interactively-extract-points-from- a-plot-listplot-or-smoothdensityhistogram) и [здесь] (http://mathematica.stackexchange.com/questions/20066/how-to-interactively-select-points-inside-certain-region-in-a-plot). – xslittlegrass

ответ

1

Вот код, надеюсь, поможет вам:.

data = Table[{Random[], Random[]}, {100}]; 

DynamicModule[{p = {0.5, 0.5}, linePts = {}, p1 = {0., 0.}, 
    pts = data}, 
Manipulate[ 
    Graphics[{Dynamic[Point[pts]], Locator[Dynamic[p]], 
    Line[Dynamic[If[p != p1, AppendTo[linePts, p]; p1 = p]; 
     linePts]]}], 
    Row[{Button["updata", 
    pts = Select[pts, ! Graphics`Mesh`InPolygonQ[linePts, #] &]], 
    Button["copy points", Print[Flatten[Position[data, #] & /@ pts]]], 
    Button["Reset", linePts = {}; pts = data;]}]]] 

Вы можете нарисовать область на графике, а затем удалить их в сюжете кнопку «обновление» будет показывать пункты остаются " копия точек "скопирует положение остаточных точек," сброс "сбрасывается на исходный график.

enter image description here

Смежные вопросы