2017-02-16 10 views
1

add(a,b)関数をmatlabファイルadd.mに定義すると、どうすればC++コードから呼び出すことができますか?このような 1の単純な例: add.m:C++コードでmatlab自己定義関数を呼び出す方法

function y=add(a,b) 
y=a+b; 
end 

C++コード:

int main(){ 
// call add(a,b) ? 
} 

Acturallyは、私は私のcppのコードでcp2tform()imtransform()のように、より多くのcompilicate MATLAB関数を使用する必要があります。

答えて

0

matlab via thisからcコードを生成することができます。あなたの主な機能から電話してください。

+0

ありがとうございますが、私は 'matlab coder'によって変換できない' cf2tform'関数を変換したいと思います。 – Fire

+0

私はその方法が何であるかわからないし、オンラインで見つけることができませんでした。しかし、私は本当にあなたがCから任意の.mファイルを呼び出すことができます+ +。あるいは、私はOpenCVで同様の機能を探すだろう。例えば、http://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html?highlight=warpaffineには、 'imtransform'と同様の機能が含まれています。 – smttsp

+0

お元気ですか、もう一度ありがとうございます。しかし、私はmatlabで '類似変換 'を使用する必要があります。具体的には、1つの画像を5ポイント(srcポイント)でもう1つのテンプレート画像(dstポイント)に変換します。これはopencvの単純なアフィン変換ではありません。そして、もう一つの混乱は、 'estimateRigidTransform'(opencv api)が5点の変換を受け入れることができないことですが、' transform matrix'(T_mat = 0)を生成できないことがあります。 – Fire

0

C/C++プログラムからMATLABエンジンを呼び出すことができます。例えば、 またはonline documentation on the MATLAB Engineです。 C/C++コードでMatlabエンジンを使用する場合は、abをMatlabにengPutVariableコマンドで渡した後、engEvalString(MyEngine,"add(a,b)");を呼び出すだけでよいでしょう。

関連する問題