# How to rearrange the rows of a matrix so the column values loop

4 ビュー (過去 30 日間)
Joshua 2013 年 6 月 19 日
I have a matrix
rec =
[ 0 0
0 0.4
0.2 0
1.0 0.4
1.0 0.9 ]
I want it rearranged so that it appears like so
rec_new =
[ 0.2 0
0 0
0 0.4
1.0 0.9
1.0 0.4 ]
If you take any one of these columns and concatenate it onto itself, the values loop from a minimum to a maximum. How can I get a program to automatically do this for a number of matrices? I'm not sure how to start this, so any help would be appreciated.
Ultimately, I need the pairs of points rearranged so that when they are graphed they form a polygon that does not intersect itself.
Thanks
##### 2 件のコメント表示非表示 1 件の古いコメント
Joshua 2013 年 6 月 20 日
Leah and Angus, I'd like to thank you both for your assistance. I appreciate it greatly.

サインインしてコメントする。

### 採用された回答

Angus 2013 年 6 月 19 日

Hey that was interesting, I think this is what you want (not sure under what conditions it might fail):
rec = [0 0;0 0.4;0.2 0;1 0.4;1 0.9]
K = convhull(rec);
rec(K,:)
ans =
0 0
0.2000 0
1.0000 0.4000
1.0000 0.9000
0 0.4000
0 0
Came across this via Gift wrapping algorithm and then found convhull from there if you are interested.
It basically draws a line around the outside of the points ... kinda or something :D
Hope this does it for you,
Cheers, Angus.
##### 6 件のコメント表示非表示 5 件の古いコメント
Joshua 2013 年 6 月 24 日
I do want to rearrange the structure of the matrix. I need to be able to do some calculations with them for the area and perimeter of the polygon the points create

サインインしてコメントする。

### その他の回答 (1 件)

Leah 2013 年 6 月 19 日
"If you only want them to be counter-clock wise, why not convert the [x,y] point to polar coordinate and sort them by angle?"
##### 2 件のコメント表示非表示 1 件の古いコメント
Leah 2013 年 6 月 20 日
I don't really know that this makes sense in 3D. If you had a mesh making up a sphere what order would you want them to go in? Clockwise direction doesn't mean anything in 3D space. I think you need to rethink your desired outcome in 3D space.

サインインしてコメントする。

### Community Treasure Hunt

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

Start Hunting!

Translated by