1

私はsimulinkでS関数に取り組んでいます。MATLAB ワークスペースには、使用可能な変数がいくつかあります。私は彼らに電話したい。

したがって、MATLAB では次のようになります。

a=3;

および S 関数 (C/C++ で記述):

double a = CallFromMATLABWorkSpace(a);  //Something like this.

どうすればいいですか?のようなものmexCallMATLABがありますが、この状況でこれをどのように使用すればよいかは明確ではありません。

4

2 に答える 2

0

のドキュメントとmexCallMATLABC++ ソース コードとの相互運用で確認できることから、次のようになります。

MyDoubleFunction単一のスカラー double 値を取り、スカラー double 値を返すMatLab 関数があるとします。4.0関数に値を渡し、その答えを知りたい場合は、次のようにします。

//setup the input args
mxArray* input_args[1] = {mxCreateDoubleScalar(4.0)};
mxArray** output_args; //will be allocated during call to mexCallMATLAB

//make the call to the Matlab function
if (mexCallMATLAB( 1 /* number of output arguments */,
                   output_args,
                   1 /* number of input arguments */,
                   &input_args,
                   "MyDoubleFunction"))
{
    //error if we get to this code block since it returned a non-zero value
}

//inspect the output arguments
double answer = mxGetScalar(*output_args);
于 2013-09-30T19:32:22.193 に答える