Matlab Engine による Cプログラムとの連携
Show older comments
Matlabのプログラムを作り、名前をTest.mとしてデスクトップに保存します。
次に、このプログラム内で計算した整数値 t を、Matlab Engineを利用して取り出して表示する、最も簡単なCプログラムのコードを作りました。
#include <stdio.h>
#include <conio.h>
#include "engine.h"
#pragma comment(lib,"libeng.lib")
#pragma comment(lib,"libmx.lib")
int main()
{
Engine *ep;
mxArray *t ;
ep = engOpen(NULL);
engEvalString(ep, "cd 'C:\Users\user1802\Desktop\source1810'");
engEvalString(ep, "MatlabEngineTest");
engEvalString(ep, "disp(t)");
t = engGetVariable(ep, "t");
t_real = mxGetPr(t);
printf("%f\n", t_real[0]);
engClose(ep);
system("pause");
return 0;
}
このコードをVisual Stadio Community 2015 Version 14.0.25431.01 Update 3でデバッグしたところ、以下のエラーが出ました。
「0x00007FF7796B18C7 で例外がスローされました (Matlab_Engine.exe 内): 0xC0000005: 場所 0x0000000000000000 の読み取り中にアクセス違反が発生しました
この例外のハンドラーがある場合は、プログラムを安全に続行できます。」
値tを取得できていないみたいなのですが、コードに欠陥があるのか、環境の問題かわかりません。(そもそもmatlabのプログラムを実行できていない?)
助言をお願いします。
Accepted Answer
More Answers (0)
Categories
Find more on C 用の MATLAB エンジン API in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!