ご依頼内容

  • 例1:Fortranで書かれたモジュールを、mex化したい。
  • 例2:Cで書かれたモジュールを、mex化したい。

課題

  • Fortran/C/C++のコードをmex化する際、入出力の変数の受け渡しをどうするか?
  • Matlabのバージョンや、コンパイラのバージョン、OSのバージョン等、ハードウェア依存の部分を、どうクリアするか?
  • Fortran/C/C++のモジュールが、他のライブラリ(DLL等)を呼んでいた場合、きちんと動作するのか?
  • 動作がおかしい場合、どのようにデバッグするのか?

ソリューション

  • mex化の際の、入出力の変数の受け渡しは、ゲートウェイ関数の記述で行うが、変数の選択(変数型)等で気をつけること。
  • Matlabやコンパイラのバージョンを、適切に選択すること。
  • Fortran/C/C++のモジュールが、他のライブラリを呼んでいる場合でも、動作を保証すること。
  • デバッグは、各開発言語のデバッガを、Matlabのプロセスにアタッチして、デバッグを行うこと。

結果

Fortran/C/C++で書かれたコードをmex化し、リファレンスと全く同じ値を得ることが出来た。

  • 処理の高速化や、どうしてもネイティブコードを使う必要がある場合に、mex化が選択肢として挙げられます。
  • しかし、素直に動作してくれる場合は良いですが、ゲートウェイ関数の定義や、Matlabのバージョン、各コンパイラのバージョン、OSのバージョン、他のライブラリのバージョン等で、気をつけなければならない部分が多々あります。
  • また、mex部分のデバッグは、各開発言語のデバッガを、Matlabのプロセスにアタッチして、デバッグを行う必要があり、ある種のノウハウが必要となります。
  • 正直、ハマると面倒な部分が多々有るのですが、弊社は今までに、様々なmex化を行い、ノウハウを蓄積しています。ご興味ありましたら、お気軽にお問い合わせ下さい。

本事例のご利用サービス

その他のサービスは、「ソフトウェア開発サービス一覧」を、ご参考にしてください。

 

お問い合わせ

開発事例にご興味ありましたら、お気軽にお問い合わせ下さい。
下記の、「今すぐお問い合わせ」をクリックして、フォームにご記入下さい。
早急に回答致します。
 
LP_imasugu_toiawase