Group 3 * 3 (2d) or 3 * 3 * 3 (3d) coordinates into square blocks?
2 次查看(过去 30 天)
显示 更早的评论
Hi all,
This question might be quite complex. Imagine there is a 3D block like this with the Cartesian coordinates:
There are 27 nodes, corresponding coordinates are (first column denotes a linear index):
K>> coords
coords =
1 -1 -1 -1
2 -1 0 -1
3 -1 1 -1
4 0 -1 -1
5 0 0 -1
6 0 1 -1
7 1 -1 -1
8 1 0 -1
9 1 1 -1
10 -1 -1 0
11 -1 0 0
12 -1 1 0
13 0 -1 0
14 0 0 0
15 0 1 0
16 1 -1 0
17 1 0 0
18 1 1 0
19 -1 -1 1
20 -1 0 1
21 -1 1 1
22 0 -1 1
23 0 0 1
24 0 1 1
25 1 -1 1
26 1 0 1
27 1 1 1
Now I'd like to group these 27 coordinates into small sub-blocks. I labelled these sub-blocks with red numbers, but it's not a must to follow the label sequence. The results should be:
block1:
-1 -1 -1
0 -1 -1
0 -1 0
-1 -1 0
-1 0 -1
0 0 -1
0 0 0
-1 0 0
block2
0 -1 -1
1 -1 -1
1 -1 0
0 -1 0
0 0 -1
1 0 -1
1 0 0
0 0 0
block3
......
Also, the code should work for any dimension, i.e. if there is a 2D square:
The code should be able to sort the coordinates into 4 sub-squares.
Can anyone help me with it? Or is there a toolbox developed for this kind of problem? Really appreciate it!
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!