While MATLAB structs have strict naming conventions for their data, there are other MATLAB data types which a dictionary can be converted into.
If we already have our Python environment loaded (which can be done manually with the MATLAB "pyenv" function), we can create a Python dictionary directly in MATLAB with the following command:
dict = py.dict(pyargs('2020-1-1 10:00:00.1', 'Value_1', '2020-1-2 12:10:00.5', 'Value_2'))
We can now convert this Python dictionary into a MATLAB map by iterating over the dictionary:
M = containers.Map;
for raw_key = py.list(keys(dict))
key = raw_key{1};
value = dict{key};
M(string(key)) = string(value);
end
Alternatively, we can convert the dictionary into a MATLAB table:
T = table;
for raw_key = py.list(keys(dict))
key = raw_key{1};
value = dict{key};
T2 = table(string(value), 'VariableNames', [string(key)]);
T = [T T2];
end
Note that this dictionary could not be converted into a MATLAB struct because the keys of the dictionary do not conform to struct naming conventions, since they do not start with a letter.
Best Answer