次の test_mex mex 関数があります。
void mexFunction(int nlhs, mxArray **plhs, int nrhs, const mxArray **prhs)
{
const mxArray* m_var = NULL;
if ((m_var = mexGetArrayPtr("a", "caller")) == NULL)
{
mexErrMsgTxt("oopsie");
}
}
そして、次の test.m ファイル:
function test()
a = 12345;
test_mex();
- 実行すると、常に失敗し、「oopsie」が出力されます。
- グローバルを作成
a
し、mex 関数の「caller」文字列を「global」に変更すると、正常に動作します。
私は何を間違っていますか?
ノート:
- これは、正に古いバージョンの matlab です: バージョン 6.1.0.450 リリース 12.1
- mexGetArrayPtr は mexGetVariablePtr の古いバージョンであり、その引数の順序は異なります