Arrays 在MATLAB中创建变长数组列表

Arrays 在MATLAB中创建变长数组列表,arrays,matlab,struct,cell-array,Arrays,Matlab,Struct,Cell Array,我想用regionprops处理图像列表,并将结果保存到数组或某种列表中 我的问题是regionprops返回一个可变大小的结构。在我的例子中是这样的: stats = regionprops(L,'Centroid'); 2x1 struct array with fields: Centroid 结构的大小取决于不同的图像 如何创建包含所有结构的对象?我需要使用单元阵列吗 我尝试了以下方法: mycell = struct2cell(stats); centers(i,:) =

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

我的问题是regionprops返回一个可变大小的结构。在我的例子中是这样的:

stats = regionprops(L,'Centroid');

2x1 struct array with fields:
    Centroid
结构的大小取决于不同的图像

如何创建包含所有结构的对象?我需要使用单元阵列吗

我尝试了以下方法:

mycell = struct2cell(stats);
centers(i,:) = mycell;
但它只在我的细胞阵列大小相同时才起作用。这里的情况并非如此,因为检测到的对象的数量随着帧的变化而变化

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


我应该使用什么,单元格数组的结构?

只需将每个结构数组的统计信息放在自己的单元格中即可。例如:

>> 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]

只需将每个结构数组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]

但是我如何通过循环中的算法来做[{stats1}{stats2}”?我想为I=1:sizeimages做一些类似的事情。。。。allstats{i}=stats或类似的东西?你明白了!祝项目顺利!但是我如何通过循环中的算法来做[{stats1}{stats2}”?我想为I=1:sizeimages做一些类似的事情。。。。allstats{i}=stats或类似的东西?你明白了!祝项目顺利!