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?

 Accepted Answer

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)

More Answers (0)

Categories

Products

Release

R2024b

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!