Undefined function or variable

2 次查看(过去 30 天)
Linar
Linar 2011-6-19
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

回答(1 个)

Walter Roberson
Walter Roberson 2011-6-19
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 个评论
Linar
Linar 2011-6-19
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 2011-6-20
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Deploy to C++ Applications Using mwArray API (C++03) 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by