MEXファイルで初期​化ルーチンを実行する​には、どのようにCコ​ードを書けば良いです​か?

3 vues (au cours des 30 derniers jours)
Shoumei
Shoumei le 21 Mar 2017
Commenté : Shoumei le 21 Mar 2017
既存のCコードがあり、MATLAB、Simulink両方で使いたいので、MEX化を行って使用しようと思っています。 SimulinkではMEXファイルをSystem Objectのラッパーからコールして使用します。 Cコードアルゴリズムには状態量があるので、Simulinkで繰り返しコールして実行する場合には、状態を初期化する必要があります。
  1. Simulinkで最初のシミュレーションステップで呼ばれるときは初期化+メインルーチンが実行される
  2. 次回以降のステップではメインルーチンのみが実行される
どのようにMEXファイルを書けばよいか指南して頂けると助かります。

Réponse acceptée

michio
michio le 21 Mar 2017
Modifié(e) : michio le 21 Mar 2017
  1 commentaire
Shoumei
Shoumei le 21 Mar 2017
ミチオさん、ありがとうございました。 サンプルコードと同じようにしたらできました。
あと、引数で指定する方法でも行けました。(以下は一部抜粋)
exflag = mxGetScalar(prhs[1]);
if (exflag == 0){
init_fcn();
// mexPrintf("init %f \n", exflag);
} else {
main_fcn(indata, outdata);
// mexPrintf("main %f \n", exflag);
return;
}

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by