在MATLAB中创建可变长度数组的列表

时间:2011-11-02 15:48:05

标签: arrays matlab struct cell-array

我想用regionprops处理图像列表,并将结果保存到数组或某种列表中。

我的问题是regionprops返回一个可变大小的结构。在我的情况下看起来像这样:

stats = regionprops(L,'Centroid');

2x1 struct array with fields:
    Centroid

结构的大小取决于图像到图像。

如何创建一个包含所有结构的对象?我是否需要使用单元格数组

我尝试了以下内容:

mycell = struct2cell(stats);
centers(i,:) = mycell;

但只有我的单元格数组具有相同的大小,它才有效。情况并非如此,因为检测到的对象数量会逐帧更改

如何在容器中存储可变长度的结构或单元格数组?

我应该使用什么,单元格阵列的结构?

1 个答案:

答案 0 :(得分:0)

将每个struct array stats放在自己的单元格中。例如:

>> stats1(3).test = 1

stats1 = 

1x3 struct array with fields:
    test

>> stats2(2).test = 1

stats2 = 

1x2 struct array with fields:
    test

>> [{stats1} {stats2}]

ans = 

    [1x3 struct]    [1x2 struct]