Python np.ndarray矩阵转换为MATLAB mat文件
- import numpy as np
-
- import scipy.io as io
-
- mat_path = 'mat_save_path'
-
- mat = np.zeros([6, 128])
-
- io.savemat(mat_path, {'name': mat})
Python读取MATLAB mat文件
- import numpy as np
- from scipy import io
-
- mat = io.loadmat('your_mat_file.mat')
- # 若报错:Please use HDF reader for matlab v7.3 files
- # 则改为下一种方式读取
- import h5py
- mat = h5py.File('your_mat_file.mat')
-
- # mat文件里可能有多个cell,各对应着一个dataset
-
- # 还可以用keys方法查看cell的名字:
- # list(mat.keys())
- # 读取则使用:
- # data = mat.get('name'),
- # 然后可以用Numpy转为np.ndarray
-
- print(mat.keys())
-
- # 可以用values方法查看各个cell的信息
- print(mat.values())
-
- # 可以用shape查看维度信息
- print(mat['your_dataset_name'].shape)
-
- # 注意,这里看到的shape与MATLAB中的不同
- # 这里的矩阵是MATLAB中矩阵的转置
- # 所以我们需要将它转置回来
- mat_t = np.transpose(mat['your_dataset_name'])
- # mat_t 是numpy.ndarray格式
-
- # 再将其存为npy格式文件
- np.save('your_npy_file.npy', mat_t)
-