Как сохранить список словарей Python в виде массива структурированных массивов Matlab?

Я пытаюсь создать файл для чтения в среде Matlab. Структура в Matlab выглядит следующим образом

trx(1) = 
          x: [1×1500 double]
          y: [1×1500 double]
          a: [1×1500 double]
          b: [1×1500 double]
      theta: [1×1500 double]
 firstframe: 1
   endframe: 1500
    nframes: 1500
        off: 0 


 trx(2) = 
          x: [1×751 double]
          y: [1×751 double]
          a: [1×751 double]
          b: [1×751 double]
      theta: [1×751 double]
 firstframe: 750
   endframe: 1500
    nframes: 751
        off: -749 

Поэтому, естественно, я создал словарь Python с обязательными полями и создал список, а затем использовал savemat. Однако, когда я загружаюсь в Matlab, я получаю только массивы ячеек. Я также пытался использовать это, но проблема в том, что не все поля являются массивами с одинаковыми формами, например, firstframe - это int. Тогда, когда я использовал fromarrays(), но он жалуется, потому что форма не совпадает.

Я пытаюсь сейчас преобразовать словарь в структурированный массив, но не нашел ничего связанного. А также пытается создать пустую запись, которая допускает различные формы для массивов. Любой свет очень приветствуется

1 ответ

Решение

В октаве

M =

  scalar structure containing the fields:

    x =

       1   2   3   4

    y =

       5   6   7   8

    one =  1
    two =

       1   2

>> save -7 struct.mat M

В Ipython:

In [450]: dat = io.loadmat('struct.mat')
In [451]: dat
Out[451]: 
{'__header__': b'MATLAB 5.0 MAT-file, written by Octave 4.2.2, 2019-02-08 18:49:49 UTC',
 '__version__': '1.0',
 '__globals__': [],
 'M': array([[(array([[1., 2., 3., 4.]]), array([[5., 6., 7., 8.]]), array([[1.]]), array([[1., 2.]]))]],
       dtype=[('x', 'O'), ('y', 'O'), ('one', 'O'), ('two', 'O')])}

Вот M является (1,1) структурированным массивом, причем все поля object DTYPE. Таким образом, каждый из них может иметь свою собственную форму. Скаляр представляет собой (1,1) матрицу.

Другие вопросы по тегам