Загрузка структуры Matlab в Python - PullRequest
0 голосов
/ 23 мая 2019

У меня есть куча структур Matlab, которые были сгенерированы из Matlab R2018b версии 9.5. Структура содержит 3 поля:

  1. Матрица двойного размера: 6942x6092
  2. Матрица двойного размера: 6942x1
  3. Матрица размера ячейки: 1x6092 (содержимое ячеек - строка)

Я хотел бы найти способ загрузить эту структуру и получить доступ к трем различным элементам в Python 3.7. Я пробовал много способов, но мне так и не удалось загрузить структуру, и я не смог получить доступ к 3 элементам структуры. Для воспроизведения структуры в Matlab:

struct.values = ones(6942,6092);
struct.dates = ones(6942,1);
struct.id = cell(1,6092);
struct.id(:) = {'x1'};
save('struct','struct');

Затем сохраняется как файл .mat.

1 Ответ

0 голосов
/ 23 мая 2019

Dev-iL был в основном прав: вы можете загружать структуры с помощью scipy.io.loadmat, а не только матриц. Смотрите здесь:

import scipy.io as sio
container = sio.loadmat('struct.mat')
values = container['struct']['values'][0,0]
...