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?

 採用された回答

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)

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangePython Package Integration についてさらに検索

製品

リリース

R2024b

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by