MATLAB: Create and store a matlab variable within the python matlab engine

MATLABpythonpython engine

I understand the MATLAB Engine API for Python does not support sparse matrices. I would like to create a MATLAB sparse matrix and store it in only MATLAB from within the Python MATLAB engine. This code doesn't work as it passes through Python first and gives an error:
import matlab.engine
eng = matlab.engine.start_matlab()
eng.workspace['A'] = eng.sprand(7000.,7000.,.001)
If I try this code:
eng.eval("A = sprand(7000,7000,.001);")
I get the following error:
Error: The expression to the left of the equals sign is not a valid target for an assignment.
If I open matlab, create the sparse matrix A, and then join the session, I can use A as expected.
eng = matlab.engine.connect_matlab()
eng.workspace['x'] = eng.rand(7000,1);
y = eng.eval("A*x;")
However, I am planning to call a script many times on multiple different machines so this workaround wouldn't work for me. Any ideas of how to do this?

Best Answer

I simply need to include the argument "nargout=0" like this:
eng.eval("A = sprand(7000,7000,.001);", nargout=0)
Related Question