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

发布于 2024-12-13 10:49:29 字数 591 浏览 0 评论 0原文

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

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

stats = regionprops(L,'Centroid');

2x1 struct array with fields:
    Centroid

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

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

我尝试了以下方法:

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

但只有当我的单元格数组具有相同的大小时它才有效。这里的情况并非如此,因为检测到的对象数量随帧而变化

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

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

I would like to process a list of images with regionprops and save the result into an array or a list of some kind.

My problem is that regionprops returns a variable size struct. It looks like this in my case:

stats = regionprops(L,'Centroid');

2x1 struct array with fields:
    Centroid

The size of the struct depends from image to image.

How can I create an object which holds all my structs? Do I need to use cell arrays?

I tried the following:

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

But it only works as long as my cell arrays have the same size. It is not the case here, as the number of detected objects change from frame to frame.

How can I store variable length structs or cell arrays in a container?

What should I use, structs of cell arrays?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紅太極 2024-12-20 10:49:29

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

Just put each struct array stats inside a cell of its own. For example:

>> 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]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文