1

私はSimulinkDesignVerifierを扱っており、自分でいくつかの情報を抽出したいと思っています。したがって、目標の数とそのどれだけが達成されたかを数えたいと思います。

'Objectives'は構造体そのものです:Objectives <1x10 struct>

目標の数を数えるのは簡単です:

length(fieldnames(Objectives))

'Objectives'の内容も構造体です。このような各構造体には、次の内容が含まれています。

type

status

label

ここで、「目的」の要素がプロパティを満たす数を数えたいと思います。

'status == Satisfied'
4

2 に答える 2

4

構造体の配列があると仮定して、次のコードを使用します。

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

古いバージョンのMatlabを使用している場合は、次を使用できます。

 nnz(strmatch('satisfied',{Objectives.status},'exact'))
于 2012-05-31T13:14:00.713 に答える
0

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関数を使用して、大文字と小文字を区別しない比較を実行していることに注意してください。

于 2012-06-01T00:59:00.453 に答える