How to call Matlab functions from C S functions

1 次查看(过去 30 天)
Hi,
Is it possible to call matlab functions from C S functions? I would need to call fzero and I do not wish to create another C function with the algorithm.
Thanks. Remus.

采纳的回答

Kaustubha Govind
Kaustubha Govind 2012-7-16
You can use mexCallMATLAB, but will need to create/destroy mxArrays as needed.
  3 个评论
Kaustubha Govind
Kaustubha Govind 2012-7-16
Please run the following command to see an example of how you can the copy the data from your real_T arrays into mxArrays:
edit([matlabroot '/extern/examples/refbook/arrayFillGetPr.c']);
Remus Mihail Prunescu
It works! Here's an example for a one input, one output matlab function:
mxArray *in[1];
mxArray *out[1];
double *pointer;
in[0] = mxCreateNumericMatrix(3, 1, mxDOUBLE_CLASS, mxREAL);
pointer = mxGetPr(in[0]);
pointer[0] = A_T;
pointer[1] = B_T;
pointer[2] = C_T;
mexCallMATLAB(1, out, 1, in, "myMatlabFun");
pointer = mxGetPr(out[0]);
return *pointer;

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Troubleshooting in MATLAB Compiler SDK 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by