Есть ли способ не допустить, чтобы scipy savemat сжимал мои массивы?

#python #matlab #scipy

#python #matlab #scipy

Вопрос:

Функция scipy savemat, похоже, всегда сжимает мои массивы (или, возможно, это делает matlab?) Пример:

 import numpy as np
import scipy.io as spio

x = np.zeros((10,10,10,1))
print(x.shape)
spio.savemat("x.mat", {'x': x})
 

Вывод:

 (10, 10, 10, 1)
 

Затем в matlab:

 load('x.mat')
size(x)
 

Вывод:

 ans =

    10    10    10 
 

Функция loadmat Scipy имеет squeeze_me kwarg, а savemat — нет.

Комментарии:

1. Посмотрите на файл с loadmat I eee 4 измерениями. Может быть, это MATLAB удаляет последнее измерение. Хотя это конечная внутренняя numpy часть, это самая внешняя часть MATLAB. Можете ли вы добавить это дополнительное измерение в MATLAB?

2. Хороший звонок, @hpaulj, я не подумал о том, чтобы загрузить его обратно в scipy. Тогда, я думаю, это matlab. Функция load () не имеет аргумента сжатия, который я вижу. Я не могу добавить дополнительное измерение в matlab, потому что я регулярно передаю данные коллеге и не хочу, чтобы им приходилось делать это вручную.