【问题标题】:How to export field values from a struct to another struct in Matlab?如何将字段值从一个结构导出到 Matlab 中的另一个结构?
【发布时间】:2018-01-07 20:24:11
【问题描述】:

我有一个包含 283 个区域值的结构,我想将高于 1000 个的值复制到具有 for 函数的第二个结构。我已经这样写了我需要的代码

Lbp = regionprops(Lblack, 'Area');
Lbp.Area;
[r,c]=size(Lbp);

B(r,c) = struct();


for d=1:r
    for g=1:c
          if Lbp(d).Area > 1000
              i=1;
              B(i)=Lbp(d);
              i=i+1;
          end
    end
end

我收到此错误不同结构之间的下标分配。即使结构大小相同。我知道我的语法是错误的,但我不知道如何语法才能将字段复制到第二个结构。

【问题讨论】:

    标签: matlab struct matlab-struct


    【解决方案1】:

    这是因为BLbp 没有相同的字段。请尝试以下操作:

    B(r,c) = struct('Area',[]);
    

    【讨论】:

    • @Kate 它有效。也许您在输入B(r,c) = struct('Area',[]); 之前没有从工作区中清除B。如果B(r,c) = struct(); 仍在内存中,那么您将得到与以前相同的错误。请先尝试clear B,然后再试一次。
    • 它只保存最后一个值。所有其他字段都用 [] 填充。
    • @Kate 你需要在循环之外初始化i。每次迭代都将其重置为 1。
    • 天哪,是的!它完全溜走了我的眼睛。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2021-03-27
    相关资源
    最近更新 更多