【问题标题】:Creating a list of variable length arrays in MATLAB在 MATLAB 中创建可变长度数组的列表
【发布时间】:2011-12-20 11:02:37
【问题描述】:

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

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

stats = regionprops(L,'Centroid');

2x1 struct array with fields:
    Centroid

结构的大小取决于图像。

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

我尝试了以下方法:

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

但它只有在我的单元格数组大小相同时才有效。此处并非如此,因为检测到的对象的数量逐帧变化

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

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

【问题讨论】:

    标签: arrays matlab struct cell-array


    【解决方案1】:

    只需将每个结构数组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}]?我想做类似for i = 1:size(images) .... allstats{i} = stats 或类似的事情吗?
    • 你明白了!祝项目顺利!
    猜你喜欢
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    相关资源
    最近更新 更多