.mat文件格式是Matlab的标准输出格式,可以用sklearn进行处理:
from scipy import io as sio
sio.savemat(file, dict_data)
data = sio.loadmat(file)
但是,如果将一个numpy数组先保存到.mat文件中,然后再重新加载,数据格式会发生变化。
在Matlab中所有的数据都是以向量/矩阵形式存储,一个长度为N的numpy数组保存为.mat文件时会被转换为(1, N)的Matlab矩阵。重新加载之后,得到的是(1, N)的numpy数组。
另外,对于numpy的str_类型,转换为.mat后会以统一的长度存储,在Matlab中会被正确处理,但是转换回numpy数组之后所有的字符串长度相同,短的字符串会在末尾用空格对齐。
网友评论