Undefined function or variable

3 visualizaciones (últimos 30 días)
Linar
Linar el 19 de Jun. de 2011
Hello,
I have a matlab file matlab_ode45_h.m:
function y = matlab_ode45_h(h, y0)
[T,Y] = ode45(@matlab_ft, [0 0.5*h h], y0);
y = Y(3,:);
I compile it using matlab compiler into a static library and call the function matlab_ode45_h from c++ code. I'm getting the following:
??? Undefined function or variable "h".
Error in ==> matlab_ode45_h at 4
How may this happen?
Thanks

Respuestas (1)

Walter Roberson
Walter Roberson el 19 de Jun. de 2011
That could happen if you do not pass anything in from C++ when you call matlab_ode45, or if somehow the argument marshaling between C++ and MATLAB is not set up correctly.
What C++ call are you using?
  2 comentarios
Linar
Linar el 19 de Jun. de 2011
I've modified the matlab function (see above) since I'm solving ODE for h time units and not interested what's happening in between. But I'm still getting the similar error message.
This is how I call the matlab function:
double h_ = TimeStep;
double y0_[N];
//set y0_
mwArray h(1, 1, mxDOUBLE_CLASS, mxREAL);
h.SetData(&h_, 1);
mwArray y0(1, N, mxDOUBLE_CLASS, mxREAL);
y0.SetData(y0_, N);
mwArray y;
matlab_ode45_h(1, y, h, y0);
Kaustubha Govind
Kaustubha Govind el 20 de Jun. de 2011
Do you call the MCR and library initialize and terminate functions in the right order? If yes and you still see the issue, could you try the documentation example and see if you can get it to work: http://www.mathworks.com/help/toolbox/compiler/f2-995712.html#f2-1009231

Iniciar sesión para comentar.

Categorías

Más información sobre Deploy to C++ Applications Using mwArray API (C++03) en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by