convert a Python tuple containing string and numerical data types to Matlab
25 次查看(过去 30 天)
显示 更早的评论
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 个评论
Stephen23
2024-11-13,9:37
"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.
回答(2 个)
Rajani Mishra
2020-3-11
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 个评论
Al Danial
2022-4-20
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Call Python from MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!