Effacer les filtres
Effacer les filtres

Call MATLAB RayleighFading in python

3 vues (au cours des 30 derniers jours)
Hai Nguyen
Hai Nguyen le 6 Sep 2022
Réponse apportée : Narvik le 13 Sep 2023
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)

Réponses (1)

Narvik
Narvik le 13 Sep 2023
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!

Catégories

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

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by