MATLABでcコードを読み込む方法

Simulinkモデルをcコードに変換してMATLABで読み込まして処理をすることは可能でしょうか?

 Accepted Answer

Etsuo Maeda
Etsuo Maeda on 9 Sep 2019

1 vote

  1. Simulink CoderでCコード生成
  2. MinGWなどでdll作成
  3. MATLABからloadlibrary
という手順はどうでしょうか。
loadlibrary関数はMATLAB Compiler SDKで作ったDLLは読み込めないので注意が必要です。

6 Comments

qrqr
qrqr on 9 Sep 2019
ありがとうございます。
Cは初心者なのでMinGWなど難しいところがあります。
素朴な疑問なのですが、なぜsimulinkモデルをmファイルに変換できないのでしょうか?
Simulink素人なので適切な回答かどうか分かりませんが、動作を見る限り内部的にCコードが生成されて、コンパイルの後、Simulinkモデルが動きだします。
つまり、mとは別個の体系で動作しているために、mファイルへの直接書き出しができないのだと思われます。
もし、mファイルから直接Simulinkモデルを実行したいということであれば、sim関数の方が使いやすいと思います。
第二引数以降を使えばパラメータも与えることができます。
simOut = sim('model', 'ParameterName1',Value1,'ParameterName2', Value2...);
HTH
qrqr
qrqr on 9 Sep 2019
ありがとうございます。
ライセンスの関係でsimulinkモデルをMATLABで処理できないかと模索していました。
qrqr
qrqr on 9 Sep 2019
MEXでやろうと思い、simulink Coderを使ってcコード化して
mex test.c
としたのですが、
rt_logging.h というのが無いとエラーになります。
Etsuo Maeda
Etsuo Maeda on 10 Sep 2019
C:\PROGRA~1\MATLAB\R2014b\rtw\c\src\rt_logging.h(17) : fatal error C1083: Cannot open include file: 'builtin_typeid_types.h': No such file or directory "
というようなエラーメッセージが表示されているのであれば、
にあるJon Boernerのコメントで解決できるかと思われます。
qrqr
qrqr on 10 Sep 2019
コメントURL内に
「MATファイルのログを有効にする]オプションをチェックするのが最善の修正方法です。」と書いてありましたが、
MATファイルのログにチェックが入っている状態でもrt_logging.hが生成されませんでした。

Sign in to comment.

More Answers (0)

Categories

Asked:

on 5 Sep 2019

Commented:

on 10 Sep 2019

Community Treasure Hunt

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

Start Hunting!