Soy un usuario de Matlab nuevo en Python. Me gustaría escribir una matriz de celdas de cadenas en Matlab en un archivo Mat, y cargar este archivo Mat usando Python (tal vez scipy.io.loadmat) en algún tipo similar (por ejemplo, lista de cadenas o tuplas de cadenas). Pero loadmat lee cosas en array y no estoy seguro de cómo convertirlo en una lista. Probé la función "tolist" que no funciona como esperaba (tengo una comprensión pobre de la matriz Python o la matriz numpy). Por ejemplo: CódigoCómo cargar una matriz de celdas de cadenas en archivos Mat Mat en la lista o tupla de Python usando Scipy.io.loadmat
Matlab: Código
cell_of_strings = {'thank', 'you', 'very', 'much'};
save('my.mat', 'cell_of_strings');
Python:
matdata=loadmat('my.mat', chars_as_strings=1, matlab_compatible=1);
array_of_strings = matdata['cell_of_strings']
Entonces, los array_of_strings variables es:
array([[[[u't' u'h' u'a' u'n' u'k']], [[u'y' u'o' u'u']],
[[u'v' u'e' u'r' u'y']], [[u'm' u'u' u'c' u'h']]]], dtype=object)
No estoy seguro de cómo convertir esta array_of_strings en una lista o tupla de Python para que se vea como
list_of_strings = ['thank', 'you', 'very', 'much'];
No estoy familiarizado con el objeto de matriz en Python o numpy. Tu ayuda será altamente apreciada.
b.tolist() da [[matriz ([[u't ', u'h', u'a ', u'n', u'k ']], dtype ='
Causality
@Denzel. ¿Debe usar chars_as_strings = 1, matlab_compatible = 1? – Marcin