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.engineeng = 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