How to Rearrange Circular Data Sequentially

7 views (last 30 days)
My data plots as follows:
The data jumps from bottom end to top end, back and forth, creating jagged lines in the line-plot.
What I want to happen (I created a mock-up) is:
Where the each successive data point in the closest distance-wise to the previous point. I assume I would have to loop through all points and check which is the closest in euclidean space and go to the next point.
I'm a beginner with MATLAB and I'm having trouble implementing this and any help is appreciated.
My data is attached to the post.

Accepted Answer

the cyclist
the cyclist on 11 Mar 2015
One possibility would be to calculate the convex hull using the convhull command, and plot that along with the X,Y points.
  1 Comment
Brian Vu
Brian Vu on 13 Mar 2015
Edited: Brian Vu on 13 Mar 2015
Thanks for all your replies. This method more or less solved this problem. Do you happen to know how to spline this points together without creating a closed shape? I was attempting vector valued splines and only recently when I rearranged the data did I see that it attempts to close the shape (links all points together).
EDIT: I know my question is VERY vague but what I have is :
and I do not want the spline to fully close - I want it to spline bit by bit and then simply end without "looping" back on itself.

Sign in to comment.

More Answers (2)

the cyclist
the cyclist on 11 Mar 2015
What command are you using to make the plot? It is defaulting to putting in a connecting line, but do you really need that at all? Maybe you could just use the X's, such as
plot(X,Y,'.')
or
scatter(X,Y)

the cyclist
the cyclist on 11 Mar 2015
You could calculate the four-quadrant inverse tangent of your X,Y coordinates, sort them in that order, and plot them as you did in your example.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!