【问题标题】:MATLAB extract field from struct in a vector arrayMATLAB从向量数组中的结构中提取字段
【发布时间】:2016-05-29 01:13:54
【问题描述】:

我遇到了以下问题:我有一个结构数组,并想从向量中的该结构中提取一个字段。

该结构有 5 个字段,其中一个称为“名称”。如何在向量中获取这些?

【问题讨论】:

    标签: matlab struct


    【解决方案1】:

    您可以使用the extractfield method:

    yourNameFieldsAsArray = extractfield(yourStruct, 'name') 
    

    如果name 字段存在,则yourNameFieldsAsArray 将是一个元胞数组,例如字符/字符串值,或者如果 name 字段仅包含整数,则为常规值数组。

    【讨论】:

    【解决方案2】:

    dfri 的答案有效,但需要 MATLAB Mapping Toolbox。您可以使用 {yourStruct.name} 将它们作为单元格数组或[yourStruct.name] 将它们作为数组:

    >> A(1).name='a'; 
    >> A(2).name='b';
    >> A(3).name='c';
    >> {A.name}
    ans = 
        'a'    'b'    'c'
    

    或者,

    >> A(1).num=10;
    >> A(2).num=5;
    >> A(3).num=25;
    >> [A.num]
    ans =
        10     5    25
    

    【讨论】:

      猜你喜欢
      • 2015-04-22
      • 2020-10-28
      • 1970-01-01
      • 2013-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 2012-05-11
      • 2020-11-20
      相关资源
      最近更新 更多