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 commentaires

Stefan
Stefan le 21 Nov 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.
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)

Connectez-vous pour commenter.

Réponses (0)

Catégories

Produits

Question posée :

le 21 Nov 2012

Community Treasure Hunt

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

Start Hunting!

Translated by