現在、関数ハンドルに大きく依存するMATLABコードを高速化するためにC言語でMEXファイルを作成しています。残念ながら、mexCallMATLAB
を使用してMATLABのハンドルを評価する必要があるため、私のMEXファイルは遅く実行されます(here)。mexCallMATLAB関数なしでMEXファイルでMATLAB関数ハンドルを使用する方法はありますか
ほとんどの関数ハンドルは、均一な乱数をとり、ランダム変数を生成する簡単なインライン関数です。典型的な例は次のとおりです。
f = @(u) exp(norminv(u))
機能が使用組み込みのMATLAB関数を処理したとしても、私のコードは、ユーザーがハードMEXファイルに関数をコーディングから私を防ぎ、独自の関数ハンドルを、使用することを許可する必要があります。
理想的には、mexCallMATLAB
関数を毎回使用することなく、この関数ハンドルを評価する方法をMEXファイルに提供したいと考えています。どのようにしてそのようなことができるのか誰にも分かりますか?私はあなたが持っている可能性のある任意の提案にオープンです。
私はこれを考えましたが、この正確な状況では機能しません。 MATLABに関数ハンドルからCコードを生成させ、何らかの形でそれらをMEXファイルに含める/参照させることは可能でしょうか? –
これはmatlabコンパイラで行うことができます。私はそれを使ったことがない(それを所有していない)が、あなたが必要とするものを手助けするようだ - http://www.mathworks.com/support/tech-notes/1600/1622.html –