2013-08-02 5 views
1

У меня есть распределение точек внутри круга. Итак, я рисую круговую сетку внутри этого круга. Я хочу найти количество точек внутри каждой ячейки круглой опоры. Есть ли способ реализовать это легко. или, может быть, рисование сетки не нужно? Моя цель заключается в построении распределения.Распределение участка внутри региона

Любая помощь очень ценится. Спасибо заранее.

+2

Преобразуйте свои точки в полярные координаты, а затем это должно быть довольно просто. Я думаю, что функция 'cart2pol' – Dan

ответ

2

Если X,Y координаты точек в вашем кругу, расстояния от центра могут быть получены с

(редактирование: T/H @horchler)

d = sqrt(sum([X(:)-X0 Y(:)-Y0].^2,2)); 

где X0, Y0 являются координаты центра круга.

Вы можете вычислить радиальное распределение с использованием hist:

figure, hist(d) 

или если вы просто хотите, распределение и бункеров

[distr bins] = hist(d); 
+0

Я бы не использовал' repmat'. Просто 'd = sqrt (sum ([X (:) - X0 Y (:) - Y0]).^2,2));'. – horchler

+0

@horchler, абсолютно верно !! –

+0

Допустим, у меня есть 20000 очков, и они находятся в окружении. Возможность нахождения нескольких точек в одном и том же месте пространства невысока. Более того, это не даст мне распределение плотности точек. Поэтому я хочу разделить круг на мелкие части, затем вычислить количество точек в каждой части и рассчитать распределение. Поиск расстояния от центра не покажет плотность распределения, в которой я нуждаюсь. – bordart

1

По «круговой сетке» Я понимаю сетку по азимуту и ​​модуля , Я предлагаю вам преобразовать в полярных координатах:

z = x + j*y; % x, y are vectors woth x, y coordinates of the points 
az = angle(z); % note that this gives azimuth in radians 
mod = abs(z); 

, а затем применить какой-то отъ 2D гистограмму az и mod, например, с помощью функции this. (Обратите внимание, что это файл, внесенный пользователем. Я сам его не тестировал).

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