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 中查找有关 Write C Functions Callable from MATLAB (MEX Files) 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by