VisualC++を使ってMATLABとC言語をつなぎたいのですが、どのようにしたらいいのでしょうか。
9 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2013 年 10 月 25 日
編集済み: MathWorks Support Team
2024 年 1 月 26 日
VisualC++を使ってMATLABとC言語をつなぎたいのですが、どのようにしたらいいのでしょうか。
採用された回答
MathWorks Support Team
2024 年 1 月 26 日
編集済み: MathWorks Support Team
2024 年 1 月 26 日
"MatlabとC言語をつなげる" には、主に次の2つの方法があります。
1. MATLAB上から、C言語で作成したMEXファイル(インターフェイスの関数記述を行い、MATLABが提供するライブラリとリンクしたDLL)を関数として利用する方法(C MEX機能)
2. C言語で作成した実行ファイルからプロセス間通信を行なってMATLABの機能を利用する方法(MATLABエンジン機能)
MATLABのExternal Interfaces が上記に関するマニュアルです。
C MEX機能については、Calling C and Fortran Programs from MATLAB(MATLABからのCおよびFortranプログラムの呼び出し)の章に記述されています。
MATLABエンジン機能については、Calling MATLAB from C and Fortran Programs(CおよびFortranプログラムからのMATLABの呼び出し)の章に記述されています。
なお、R14になりますが、下記ページのUser Guidesに日本語版のExternal Interfacesマニュアルがございます。
また、これらのサンプルファイルが用意されております。
1.については
$MATLAB\extern\examples\mex
$MATLAB\extern\examples\mx
$MATLAB\extern\examples\refbook
(ここで、$MATLABはMATLABのインストールディレクトリです。)
のディレクトリに用意されております。
$MATLAB\extern\examples\refbookディレクトリのtimestwo.cのソースを参考に、C Mexファイルを作成してみます。このプログラムは入力を2倍した値を出力します。
MATLABプロンプトにおいて、
mex -setup
とタイプし、指示に従って使用するコンパイラを選択します。サポートコンパイラにつきましては、次のURLをご覧ください。
●サポートされるコンパイラとその互換コンパイラ
cd (timestwo.cのあるDirectory) mex timestwo.c
とタイプするとMEXファイル(timestwo.dll or timestwo.mex***)が作成されます。
(※拡張子は、バージョンやプラットフォームによって異なります。)
timestwo(1)
とタイプすると計算結果が表示されます。
2. については
$MATLAB\extern\examples\eng_mat
のディレクトリにengwindemo.c、engdemo.cがサンプルファイルとして用意されています。Microsoft Visual C/C++ 6.0をご利用の場合、
mex -f $MATLAB\bin\win32\mexopts\msvc60engmatopts.bat engwindemo.c
とし、作成されたengwindemo.exeを実行してください。
-fの後には、各サポートコンパイラごとに用意されているオプションファイルを指定します。コンパイラとオプションファイルの対応につきましては、下記関連ソリューションをご覧ください。
0 件のコメント
その他の回答 (0 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!