Create and store a matlab variable within the python matlab engine

4 Ansichten (letzte 30 Tage)
Jeff
Jeff am 3 Okt. 2018
Beantwortet: Jeff am 8 Jan. 2019
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?

Akzeptierte Antwort

Jeff
Jeff am 8 Jan. 2019
I simply need to include the argument "nargout=0" like this:
eng.eval("A = sprand(7000,7000,.001);", nargout=0)

Weitere Antworten (0)

Kategorien

Mehr zu Call MATLAB from Python finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by