Call MATLAB RayleighFading in python

Hello,
I'm trying to use comm.RayleighFading object from MATLAB in python. After initiating the object, I called that object taking the argument being my input data. However, it returned an error: TypeError: 'matlab.object' object is not callable
How to use this object in python properly? I appreciate the help!
eng = matlab.engine.start_matlab()
rl_channel = eng.comm.RayleighChannel()
y = rl_channel(input)

답변 (1개)

Narvik
Narvik 2023년 9월 13일

0 개 추천

Hi,
I understand that you are facing an issue while trying to use a MATLAB object in Python. The error TypeError: 'matlab.object' object is not callable occurs when you try to call, with ‘()’, an object that is not callable.
To use a MATLAB object properly in Python:
  • Add the object to the MATLAB engine workspace.
  • Call the MATLAB “eval” function to execute the required statement (‘rl_channel(input)’ in this case) in MATLAB.
Please find the example code below:
import matlab.engine
eng = matlab.engine.start_matlab()
rl_channel = eng.comm.RayleighChannel()
% add object to MATLAB engine workspace.
eng.workspace['rl_channel'] = rl_channel
% call rl_channel with your input using eval function.
y = eng.eval('rl_channel(input)')
For more information on using the MATLAB workspace in Python and “eval” function, refer to the following documentation links:
Hope this helps!

카테고리

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

태그

질문:

2022년 9월 6일

답변:

2023년 9월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by