6

I am looking for a simple way to visualize some of my data in numpy, and I discovered the mlabwrap package which looks really promising. I am trying to create a simple plot with the ability to be updated as the data changes.

Here is the matlab code that I am trying to duplicate

>> h = plot([1,2,3], [1,2,3], '-o');
>> set(h, 'XData', [0,0,0]);
>> drawnow();

to python

>> from mlabwrap import mlab
>> h = mlab.plot([1,2,3], [1,2,3], '-o')
>> mlab.set(h, 'XData', [0,0,0])
>> mlab.drawnow();

However, the second to last command fails with an error message

error: One or more output arguments not assigned during call to "set".

Any suggestions on how to fix this?

2 Answers 2

6

Maybe mlab is mad that you're not saving matlab's return value for that set() call...

I don't have this installed, what does someval = mlab.set(h,'XData') give?

edit: you could also try using nout... mlab.set(h,'XData',[0,0,0],nout=0)

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks, you bet me to the answer by a few minutes. By default, mlabwrap translates the python command to [RES0__]=set(arg0__, arg1__, arg2__);, and since set takes no ouptut arguments, this results in the error above.
5

Since set takes no output arguments, we need to tell mlabwrap that no output arguments should be given to it to avoid the error message above.

mlab.set(h, 'XData', [0,0,0], nout=0)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.