Я являюсь пользователем Matlab, новым для Python. Я хотел бы написать массив ячеек строк в Matlab в файл Mat и загрузить этот файл Mat с помощью Python (возможно, scipy.io.loadmat) в некоторый подобный тип (например, список строк или кортежей строк). Но loadmat читает вещи в массиве, и я не уверен, как преобразовать его в список. Я попробовал функцию «списка», которая не работает, как я ожидал (у меня плохое представление о массиве Python или массиве numpy). Например:Как загрузить массив ячеек строк в файлах Matlab mat в список или кортеж Python с помощью Scipy.io.loadmat
Matlab код:
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']
Затем переменная array_of_strings является:
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)
Я не уверен, как преобразовать этот array_of_strings в список Python или кортеж, чтобы он выглядел как
list_of_strings = ['thank', 'you', 'very', 'much'];
Я не знаком с объектом массива в Python или numpy. Ваша помощь будет высоко оценена.
b.tolist() дает [[массив [[u't ', u'h', u'a ', u'n', u'k ']], dtype ='
Causality
@ Denzel. Вы должны использовать chars_as_strings = 1, matlab_compatible = 1? – Marcin