Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

reorder the data array for the least distance

1 visualización (últimos 30 días)
Feng
Feng el 29 de Ag. de 2018
Cerrada: MATLAB Answer Bot el 20 de Ag. de 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!

Respuestas (2)

Stephen23
Stephen23 el 29 de Ag. de 2018
Editada: Stephen23 el 29 de Ag. de 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 el 29 de Ag. de 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

La pregunta está cerrada.

Community Treasure Hunt

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

Start Hunting!

Translated by