MATLAB Engine API for Python: MATLAB struct

I am using the MATLAB Engine API for Python. MATLAB version is 2018a, Python version is 3.6.6, and I am running on Linux.
For the first time in my experience, I am invoking a MATLAB function that returns a MATLAB struct, with the intention of processing it as a dict. But I am getting
TypeError: unsupported data type returned from MATLAB
Short of returning the fields as separate arguments, is there a way to return a MATLAB struct? I know that at one time is was unsupported, and would appreciate a workaround if this is still the case.
Here is the first line of the MATLAB function:
function [ ptm ] = multitrain( datamat, configin, buffersize )
and here is the invocation:
ptm = eng.multitrain(ml_list,'outputfilename',50.0,nargout=1)

Answers (1)

What are the data types of the fields inside the struct? A struct itself will map to a Python dict, so the error is probably coming from an unsupported field type (e.g. a Cell array).
More info about supported data types from MATLAB to Python can be found in the Engine API docs.

Tags

Asked:

on 21 May 2019

Answered:

on 1 Apr 2020

Community Treasure Hunt

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

Start Hunting!