我负责的Simulink设计验证,并想提取我自己的一些信息。 因此,我要算目标的数量,以及他们多少都得到满足。
“目标”是一个结构本身:目的<1×10结构>
计数的目标数是很容易:
length(fieldnames(Objectives))
“目标”的内容也是结构。 每个这样的结构有下面的内容:
type
status
label
现在我要统计有多少元素在“目标”满足上述特性
'status == Satisfied'
我负责的Simulink设计验证,并想提取我自己的一些信息。 因此,我要算目标的数量,以及他们多少都得到满足。
“目标”是一个结构本身:目的<1×10结构>
计数的目标数是很容易:
length(fieldnames(Objectives))
“目标”的内容也是结构。 每个这样的结构有下面的内容:
type
status
label
现在我要统计有多少元素在“目标”满足上述特性
'status == Satisfied'
假设你有结构的数组,可以使用下面的代码:
nnz(strcmp({Objectives.status},'satisfied'))
如果你有旧matlab版,您可以使用:
nnz(strmatch('satisfied',{Objectives.status},'exact'))
你也可以使用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函数进行区分大小写的比较。