Error retrieving MATLAB variable via engGetVariable

I'm trying to retrieve a variable from a MATLAB session embedded in my C++ application, using the Engine API.
A call to engGetVariable(eng, "v") returns NULL, even though a previous call to engEvalString(eng, "who") will show "v" in the output buffer.
Is there anything that may cause this behavior ?
As I'm debugging this I noticed the following:
If I type "v = 'foo'" in an interactive MATLAB session, the generated output starts with "v = ". However, when I call engEvalString(eng, "v = 'foo'") and look at the output, I see it as "ans = ". Could that be related ?
Thanks for any hints !

3 comentarios

Stefan
Stefan el 21 de Nov. de 2012
To rephrase the question slightly (as it occurs to me the problem only arises with non-builtin types):
Are there any requirements on the type of objects that may be retrieved via engGetVariable ? Retrieving a builtin array works just fine, but as soon as I wrap it into my custom class, I get NULL back...
Stefan: Could you try contacting MathWorks Tech Support about this? The fact that the issue only occurs with custom classes makes me think this is indeed an API limitation that may not have been documented.
James Tursa
James Tursa el 27 de Nov. de 2012
Q1: Can you load the class object from a mat file? (i.e., get it loaded and get the class registered)
Q2: If Q1 works, can you subsequently get the class object from the Engine? (i.e., after the class is registered via the mat load)

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Productos

Preguntada:

el 21 de Nov. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by