在MATLAB中将复杂形状划分为连续的子形状

时间:2014-03-11 00:50:37

标签: matlab geometry shapes

我将3D形状作为3D矩阵加载到MATLAB中。矩阵相当大,例如250x250x250。该形状在矩阵内通过数字> 0但是<= 1来定义,因此矩阵中的所有正数都是“形状”,并且所有零都是“非形状”。形状是连续的。这种形状的一个平面的简化(8×8)示例如下所示:

0  0  0  0  0  0  0  0
0  0  1 .5 .1 .2  1  0
0  0  0  0  0 .3  0  0
0  0 .2 .3  1  1  1  1
0  0  0 .8  1  0  0  0
0 .2 .1  1  0  1  0  0
0 .1 .9 .9 .9  0  0  0
0  0  0  0  0  0  0  0

我需要将这个形状分成两个子形状,其中两个子形状的值的总和大致相等,并且两个子形状是连续的。因此有效的划分可能是[N.B.零替换为'。'视觉清晰度]:

.  .  .  .  .  .  .  .
.  .  B  B  B  B  B  .
.  .  .  .  .  B  .  .
.  .  A  A  B  B  B  B
.  .  .  A  A  .  .  .
.  A  A  A  .  A  .  .
.  A  A  A  A  .  .  .
.  .  .  .  .  .  .  .

但是下面的划分是无效的,因为子形状B中的所有值都不能直接相互连接。

.  .  .  .  .  .  .  .
.  .  B  B  B  A  A  .
.  .  .  .  .  A  .  .
.  .  B  B  A  A  A  A
.  .  .  B  A  .  .  .
.  B  B  B  .  A  .  .
.  B  B  B  B  .  .  .
.  .  .  .  .  .  .  .

我的真实世界的例子是3维且更大。任何想法我如何将我的形状分成两个连续的子形状。通过扩展,如果我愿意,我怎么能将它分成3个连续的子形状,再次,子形状中的值之和近似相等?

0 个答案:

没有答案