Why Do I Get an Error When Returning Multiple Values from a Python Package Compiled Using MATLAB R2024b?

I am using a MATLAB function LA_Env_reset within a Python script, which is supposed to return four values: state_1, state_2, state_3, and state_4. I have successfully compiled the MATLAB function into a Python package using MATLAB Compiler SDK and performed initial tests. However, when I attempt to call the function with:

s1, s2, s3, s4 = la_env.LA_Env_reset(la_env_obj, seed, snrdb)

I encounter the following error

TypeError: cannot unpack non-iterable float object

It seems that only one value is being returned instead of four. How can I resolve this issue to retrieve all four expected values?

 Risposta accettata

The default behavior of the MATLAB-Python integration is to expect a single output argument from the function call. To retrieve multiple output values, you need to explicitly specify the number of expected outputs using the nargout parameter in your function call.
To resolve the issue, modify your function call to include nargout=4 like this:
s1, s2, s3, s4 = la_env.LA_Env_reset(la_env_obj, seed, snrdb, nargout=4)

Più risposte (0)

Categorie

Prodotti

Release

R2024b

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!

Translated by