2012-01-03 3 views
1

Matlabで書かれた関数をC \ C++に変換して最適化したいと思います。結果は、より大きなMATLABコードの小さな部分であるので、matlab内から呼び出し可能にする必要があります。コードパッケージを使用した.mxxコード

たとえば、my関数を.mexファイルでラップされたCコードに変換すると動作します。 私はmatlabのコーダーパッケージがそれを助けることができると聞いた。

私はこのパッケージに慣れていないので、これを達成する最も簡単な方法は何ですか?

+0

あなたのコードの複雑さに依存します...あなたはmatabのコーダーライセンスを持っていますか? – Oli

答えて

2

MATLAB Coderのライセンスをお持ちの場合は、これが正しいパッケージです。あなたが探している機能はcodegenです。あなたの関数は、それらの制限を満たしている場合、参照

function foo(bar) %#codegen 
    <your code here> 

下に示すように、あなたの関数の先頭にタグ%#codegenを追加して、MATLABエディタで関数ファイルを開くには:コード生成に使用することができるものには制限があります。タグは、コードがコード生成の規則に準拠しているかどうかをチェックするようにエディタに指示します。エディタはあなたのコードは、これらの規則に準拠していることを示していたら、MEXファイルを生成するように簡単

>> codegen foo 
MEXファイルを生成する

foo_mex

として現在のフォルダであってもよいです。特定の関数については、適切なmexファイルを生成するために、 codegenのオプションの引数のいくつかを使用する必要があります。

+0

ありがとうございます。私にはライセンスがあります。ライセンスなしで誰かにこのmexを渡せますか? (おそらく、このパッケージがなくなる前に古いMatlabを実行していたかもしれません) – Leo

+0

AFAIK mex-fileを使用するためのライセンスは必要ありません。ただし、ファイル拡張子からわかるように、Mexファイルはアーキテクチャー固有のものなので、他の人のマシンのアーキテクチャーを認識する必要があります。以前のバージョンのMATLABについては、mex-filesリンクがそれほど変わらない基本ライブラリがあると思いますが、あなたのアプリケーションで動作するかどうかを確認する必要があります。 – AValenzuela

関連する問題