2016-03-10 2 views
0

Я пытаюсь построить контур участка рассеяния, который у меня есть. Я не хочу, чтобы какой-либо из маркеров разброса был только строкой, которая начертала облако точек и, если возможно, заполнила ее цветом. благодаря!получить только контур рассеянного графика matlab

x = linspace(0,3*pi,200); 
    y = cos(x) + rand(1,200); 
    scatter(x,y) 

ответ

1

Это звучит, как вы хотите построить в convex hull, для которого вы можете использовать функцию MATLAB convhull.

1

Ответ Дэна, вероятно, лучший способ пойти. Поскольку неясно, нужен ли вам минимальный корпус или сплайн-фитинг в экстремальных точках, я просто предлагаю использовать его как вариант. Грубо говоря, определите, какой должен быть разумный минимальный радиус, затем сканируйте от 0 до 2 * pi, собирая точки максимального радиуса (до тех пор, пока это больше, чем выбранная вами минута) на каждом выборочном угле. Подгонка сплайна к этому набору точек.

Эта проблема может быть чрезвычайно сложной, как в this paper, BTW.

Редактировать: ответить на вопрос Дэна: У Matlab нет ничего встроенного, о котором я знаю; Я бы выбрал центр одним из центров: средние значения x, y - это стандартный метод. Если у вас есть теория относительно лежащего в основе распределения, например, 2D-гаусса, вы можете попробовать подгонять данные к функции распределения и интерполировать ее центроид.

+0

Это интересный метод, имеет ли MATLAB что-то вроде этого заранее построенного? Также, как вы выбираете центр? – Dan

+1

@ Dan - см. Правки –