Info

此问题已关闭。 请重新打开它进行编辑或回答。

reorder the data array for the least distance

3 次查看(过去 30 天)
Feng
Feng 2018-8-29
关闭: MATLAB Answer Bot 2021-8-20
I have a data array
a =
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1
1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1
1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1
1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1
1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Which I converted into a two column data array by picking up all the ones using
CC = bwconncomp(a)
data = regionprops(CC, 'PixelList')
The new data is organized by rows, e.g.,
3 1
3 2
3 8
3 9
4 1
4 2
4 8
4 9
.....
I would like to reorganize it like
3 1
3 2
4 1
4 2
.....
3 8
3 9
4 8
4 9
.....
so the connected points are next to each other. Any idea on how to achieve this?
Thanks!

回答(2 个)

Stephen23
Stephen23 2018-8-29
编辑:Stephen23 2018-8-29
You can easily use sortrows to get a very similar sequence, which keeps the connected points together, as you requested:
sortrows(data,[2,1])

Feng
Feng 2018-8-29
Thanks, Stephen, for your help. I tried and instead of going going vertically, it is now going horizontally. The order is from RED to YELLOW as before (picture1) and after (picture2). But what I would like is from RED to GREEN as in picture1

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by