質問: コード生成を前提にしたsimulinkモデルで、条件成立時に配列の、あるインデックスが持つ値をインクリメントする方法 配列 test[3]のそれぞれのデータに対し、ある閾値を超えた場合にデータをインクリメントするモデルの作り方を教えていただけないでしょうか。(2015a) 例えば、以下のようなcソースをモデルで実現することは可能でしょうか。また、一般的にモデルで表現するとどのような作りになるのでしょうか。 if ( val 1> labelx ) { test[0]++ ; } if ( val 2> labely ) { test[1]++ ; }
回答: simulinkのブロックで汎化した記述をするのは難しいですね。添付した「my_model.slx」のように、selectorを使えば書けるのですが、インクリメントする要素を変えると構造を変えなければなりません。 もし社内ルールでmatlab functionを使ってもよいのであれば、「my_model_2.slx」のように記述できるので、こちらの方がよいと思います。 embedded coderでコード生成した後のコードも添付しています。拡張子が.cのままでは添付できなかったので、.txtにしました。開く際は拡張子を修正してください。