4

C++ の長いコードがあり、MATLAB から呼び出したいと考えています。

MEX ファイルを使用すると、既存の C/C++ および Fortran の大規模なルーチンを、MATLAB 関数として書き直さずに MATLAB から呼び出すことが可能であると読みました。

ただし、MEX ファイルは扱いにくく、明らかにコード全体を変更する必要があります。さらに、MATLAB のコマンド ラインから C/C++ コンパイラを呼び出す際に問題があります。特に、MATLAB は

Select a compiler: 
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2013a\sys\lcc
[2] Microsoft Visual C++ 2010 in D:\Program Files\Microsoft Visual Studio 10.0

私のコードは Borland c++ で書かれていますが、MATLAB は Borland をコンパイラとして認識できませんでした。

私が現在行っている方法よりも簡単に、C/C++ コードを MATLAB に MEX ファイルで統合する方法はありますか?

4

3 に答える 3

2

ここから読むと、Matlab が C または Fortran とインターフェースできることは明らかです。どうやって C++ から C に移行しますか? を使用しますextern "C"

この件に関する簡単な紹介についてはこちらをお読みください。ただし、基本的にはextern、リンカーとコンパイラの両方が C インターフェイスを正しく構築する方法を認識できるように、C++ 関数の C インターフェイスを公開するために を配置するだけで十分です。

FAQでは、C++ と C で提供される機能が異なるため、このソリューションのいくつかの制限についても説明しています。

于 2013-08-08T11:05:41.720 に答える
1

MEX ファイルを使用して実際の matlab インターフェイスを作成する代わりに、システム コールを介して C++ プログラムを呼び出すこともできます。最初に必要なデータをファイルに書き込む必要がありますが、これは非効率的ですが、頻繁に使用する予定がない場合は、実際のインターフェイスを記述するよりもおそらく優れています。

于 2013-08-08T11:52:44.150 に答える