Create and store a matlab variable within the python matlab engine

조회 수: 5 (최근 30일)
Jeff
Jeff 2018년 10월 3일
답변: Jeff 2019년 1월 8일
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?

채택된 답변

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Call MATLAB from Python에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by