Я пытаюсь сопоставить список Python словарей с указанным c .mat
fromat. Мне нужно сделать это, потому что я использовал Python для разработки некоторого кода для генерации «картин» (ie. Представленных таким словарем), но хочу повторно использовать программу Matlab, предоставленную из другого проекта, который визуализирует словари этой структуры ,
На протяжении всего моего проекта я следил за тем, чтобы все имена, типы и структуры сгенерированной мной картины совпадали с примером набора данных проекта Matlab. Последний шаг теперь состоит в том, чтобы преобразовать это в этот .mat
fromat. Для этого я использую numpy
и scipy.io
. Однако важно отметить, что у меня нет опыта работы с Matlab, поэтому я разработал свой код в Python.
Мой Python Словарь:
[{'xmax': 593, 'ymax': 685, 'h_pts': [0, 168, 362, 685], 'v_pts': [0, 25, 468, 487, 540, 593], 'h_thick': [0, 14, 16, 0], 'v_thick': [0, 14, 15, 16, 17, 0], 'h_ext': [[1, 6], [2, 6], [2, 5], [1, 6]], 'v_ext': [[1, 4], [1, 4], [2, 4], [2, 3], [2, 4], [1, 4]], 'rect': [[4, 3, 3, 5], [4, 3, 2, 3], [4, 2, 5, 6], [4, 1, 1, 2], [3, 2, 4, 5], [3, 2, 3, 4], [3, 2, 2, 3], [2, 1, 2, 6]], 'rect_colors': [2, 3, 1, 3, 3, 3, 1, 1]}]
Пример представления файла .mat
(что я хочу):
Что я сейчас пытаюсь:
saveformat = {}
paintings = [<python dictionary as above here>, ...]
representations = np.asarray(representations).astype('object')
saveformat['reps'] = representations
sio.savemat("cool_name.mat", saveformat)
Мой результат в Matlab:
При нажатии на одну из ячеек выше ^
Очевидно, что здесь что-то идет не так, и я не могу понять, что именно из документации scipy.io
. Вместо того, чтобы генерировать столбец для каждого значения ключа словаря и затем перечислять значения для этих ключей для каждого экземпляра словаря в строках, он просто генерирует одну строку с одним словарем в каждом столбце (по одной для каждой картины).
Таким образом, вопрос довольно прост: как можно go правильно отобразить этот формат?