Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

reorder the data array for the least distance

1 vue (au cours des 30 derniers jours)
Feng
Feng le 29 Août 2018
Clôturé : MATLAB Answer Bot le 20 Août 2021
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!

Réponses (2)

Stephen23
Stephen23 le 29 Août 2018
Modifié(e) : Stephen23 le 29 Août 2018
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 le 29 Août 2018
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

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by