Python保存數組的方式有很多種,如savetxt,但這個函數只能保存一維或二維數組。爲了保存高維數組,同時能夠在matlab載入,可以使用scipy.io.savemat()函數,例子:
import numpy as np
import scipy.io as sio
A = np.array([[[1, 2], [3, 4]],[[5, 6], [7, 8]]])
print A
print A.shape
sio.savemat('data.mat', {"foo":A})
得到輸出:
在matlab中導入該數組:
>>load('data.mat')
可以看到,matlab與Python對矩陣的保存上有一定的變換,從Python到matlab爲:’頁’->’行’,’行’->’列’,’列’->’頁’,即在Python中的矩陣形狀爲
另外,在Python中如果保存成.mat文件時代碼爲:sio.savemat('data.mat', A)
,則會報錯AttributeError: 'numpy.ndarray' object has no attribute 'items'