How to Rearrange Circular Data Sequentially

6 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

the cyclist
the cyclist il 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 Commento
Brian Vu
Brian Vu il 13 Mar 2015
Modificato: Brian Vu il 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.

Accedi per commentare.

Più risposte (2)

the cyclist
the cyclist il 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 il 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.

Categorie

Scopri di più su Splines in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by