Create and store a matlab variable within the python matlab engine

3 vues (au cours des 30 derniers jours)
Jeff
Jeff le 3 Oct 2018
Réponse apportée : Jeff le 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?

Réponse acceptée

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

Plus de réponses (0)

Catégories

En savoir plus sur Call MATLAB from Python dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by