Running MATLAB engine from MATLAB

Currently I work on a project where I have to use the MATLAB engine in Python. This Python module I want to use in MATLAB. I.e. I start a Python module in MATLAB which starts the MATLAB engine and calls a function in MATLAB which return value then is processed in my Python module. The return value from the Python module then should be further processed in MATLAB.
I get this error message:
Error using enginesession>__init__ (line 8)
Python Error: EngineError: MATLAB process session cannot be initialized.
Error in __init__><module> (line 82)
_session = EngineSession()
Error in __init__>import_module (line 37)
__import__(name)
I get a similar error if I try to load the MATLAB engine from MATLAB by using
py.importlib.import_module('matlab.engine')
Is there a way to solve my issue or is this just simply not possible with the MATLAB engine?

댓글 수: 4

Stephan
Stephan 2018년 10월 18일
Could you provide your python code and data (If needed) to run the code?
In which step of your process do you get an error? Last step? First? Please clarify.
Kevin Chng
Kevin Chng 2018년 10월 19일
What version of python are you using?
Adrian
Adrian 2018년 10월 19일
편집: Adrian 2018년 10월 19일
"""
Loads parameters from mat-files and checks if parameters are missing or not.
If parameters are missing they get default values.
Note: matlab.engine should be imported before ANNarchy as they interfere
with each other.
"""
import matlab.engine
import globalParams
from ANNarchy import *
# Initialization
expType = globalParams.expType # get type of experiment
#expType = 'SSDtester'
eng = matlab.engine.start_matlab()
showDisp = False
pathSSD = 'mat/original/'
pathStim = 'mat/Stim/'
def loadParam():
# for SSDtester
if expType == "SSDtester":
tmp1 = eng.mat2py(pathSSD+'main.mat','parameter')
d = tmp1['parameter']
tmp2 = eng.mat2py(pathSSD+'test.mat','parameter')
tmp2 = tmp2['parameter']
tmp3 = eng.mat2py(pathSSD+'ssd.mat', 'parameter')
tmp3 = tmp3['parameter']
d.update(tmp2)
d.update(tmp3)
...
mat2py
function d = mat2py(file, data)
%MAT2PY Return a MATLAB variable to pass it to Python
% File should be a .mat-file and data a variable/structure/array in the
% file
d = load(file, data);
end
I use Python 3.6. I get an error when importing the modules. The error occurs when I run the module in MATLAB via the API and matlab.engine is imported, to be precise. If I run the module from the Python shell it works without errors.
Hadi Salimi
Hadi Salimi 2021년 3월 11일
Did you find any soloutions regarding your issue?

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

도움말 센터File Exchange에서 Call MATLAB from Python에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2018년 10월 17일

댓글:

2021년 3월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by