convert a Python tuple containing string and numerical data types to Matlab
16 views (last 30 days)
Show older comments
How do I convert the following tuple in python and save it to a "test.mat" file so that I can load and read it in Matlab:
py_tuple = [('cars', 'gm', [['red', 10],['black', 15]]),
('cars', 'ford', ['green',5]),
('cars', 'honda', [])]
1 Comment
Stephen23
on 13 Nov 2024
"How do I convert the following tuple in python and save it to a "test.mat" file so that I can load and read it in Matlab:"
Unless you really enjoy fiddling around with files, why not simply access the data directly from MATLAB?:
L = pyrun("x = [('cars', 'gm', [['red', 10],['black', 15]]), ('cars', 'ford', ['green',5]), ('cars', 'honda', [])]","x")
L{1}
L{2}
L{3}
etc.
Answers (2)
Rajani Mishra
on 11 Mar 2020
You can either save the data as
1)Python tuple itself in .mat file. For that you have to create a variable of type “py.tuple()” in MATLAB. For more information refer: https://www.mathworks.com/help/matlab/python-data-types.html?s_tid=CRUX_lftnav
Example:
myTuple = py.tuple({'red',10});
myTuple2 = py.tuple({'cars','gm',tuple});
2) Create a cell array with the same elements and store and load it from a mat file. As cell also supports different data types like tuples to be stored. For creating a cell array refer below:
For saving and loading from a mat file refer to this link: https://www.mathworks.com/help/matlab/matlab_env/save-load-and-delete-workspace-variables.html
0 Comments
Al Danial
on 20 Apr 2022
The SciPy module has a function, savemat, which can write Python variables to MATLAB .m files. Your tuple can be written to test.mat with
from scipy.io import savemat
py_tuple = [('cars', 'gm', [['red', 10],['black', 15]]),
('cars', 'ford', ['green',5]),
('cars', 'honda', [])]
M = { 'py_tuple' : py_tuple }
savemat('test.mat', M)
Loading test.mat in MATLAB gives
>> t = load('test.mat');
>> t.py_tuple
ans =
3×3 cell array
{'cars'} {'gm' } {2×2×21 char }
{'cars'} {'ford' } {2×21 char }
{'cars'} {'honda'} {0×0 double}
Section 7.14 of Python for MATLAB Development covers reading and writing .mat files to/from Python in detail.
0 Comments
See Also
Categories
Find more on Call Python from MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!