【问题标题】:Matlab: Count number of structs that have a specific contentMatlab:计算具有特定内容的结构数
【发布时间】:2012-06-05 17:51:25
【问题描述】:

我正在处理 Simulink Design Verifier 并想自己提取一些信息。因此,我想计算目标的数量以及满足了多少目标。

'Objectives' 本身就是一个结构体:Objectives

计算目标的数量很容易:

length(fieldnames(Objectives))

“目标”的内容也是结构。每个这样的结构都有以下内容:

type

status

label

现在我想计算“目标”中有多少元素满足该属性

'status == Satisfied'

【问题讨论】:

    标签: arrays matlab struct count


    【解决方案1】:

    假设您有一个结构数组,请使用以下代码:

     nnz(strcmp({Objectives.status},'satisfied'))
    

    如果你有旧的 Matlab 版本,你可以使用:

     nnz(strmatch('satisfied',{Objectives.status},'exact'))
    

    【讨论】:

      【解决方案2】:

      您也可以使用 ISMEMBER。示例:

      %# lets create a sample array-of-structs
      v = cellstr( num2str(rand(10,1)>0.5, 'Value %d') );
      s = struct('value',v);
      
      %# count number of structs satistying a condition
      num = sum( ismember(lower({s.value}), 'value 0') )
      

      请注意我如何使用 LOWER 函数执行不区分大小写的比较。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-05
        • 1970-01-01
        • 2022-07-19
        相关资源
        最近更新 更多