Matlab - 在结构中动态添加数据

时间:2013-12-18 12:59:43

标签: matlab dynamic data-structures

Matlab的图像处理工具箱包含函数bwconncomp,它提供了一个Matlab结构,其中包含(以及其他)对象的数量和每个组件中的像素列表。

我想为骨架的交叉点生成类似的输出[由bwmorph(matrix,'branchpoints')]找到。但是,我不熟悉如何声明一个开放的结构。

我的目的是搜索矩阵并添加有关每个矩阵的信息。由于'branchpoints'给出的某些点可以表示相同的交点,我不知道交叉点的数量,或者需要存储在我的像素id列表中的像素数。

如何在包含给定交叉点的所有像素的单元格中添加像素(bwconncomp输出中的CC.PixelIdcList)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我不确定你要问的是什么,但这里有两种方法可以在结构中添加字段:

首先,我们可以通过在其中添加值来添加字段。这些字段可以是数组或单元数组,您可以像任何matlab数组一样动态增长它们:

s.p{1} = 5;
s.p{2} = 10;
s.p{3} = 'I''m a string!';

其次,如果你真的需要,你可以使用字符串动态创建字段名称:

for n = 1:3
  name = ['p', num2str(n)];
  s.(name) = n/10;
end

这导致:

disp(s)

scalar structure containing the fields:

p = 
{
  [1,1] =  5
  [1,2] =  10
  [1,3] = I'm a string!
}
p1 =  0.10000
p2 =  0.20000
p3 =  0.30000

答案 1 :(得分:0)

在bwmorph(矩阵,'branchpoints')的矩阵上使用bwconncomp。