2016-05-13 291 views
0

如何將多個ndarray保存爲一個mat文件,使用scipy函數savemat?我不知道如果我有兩個矩陣打電話AB,我可以將它們都保存到一個result.mat像如下:將多個ndarray保存爲mat文件中的每個單獨內容 - scipy

sio.savemat('result.mat', {'A':A}) 
sio.savemat('result.mat', {'B':B}) 

我這樣做,並在MATLAB然後打開result.mat只找到矩陣B ... A了覆蓋。任何幫助?

+0

每次調用都以新的「寫入」模式打開文件,替換先前創建的文件。這是正常的Python文件寫入練習。但'savemat'接受一個已經打開的文件。因此,在寫入模式下打開文件,並且同時調用'savemat'。 – hpaulj

回答

2
In [436]: with open('test.mat','wb') as f: # need 'wb' in Python3 
    savemat(f, {'A':np.arange(10)}) 
    savemat(f, {'B':np.ones((3,3))}) 
    .....:  

In [437]: loadmat('test.mat') 
Out[437]: 
{'A': array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]), 
'__version__': '1.0', 
'B': array([[ 1., 1., 1.], 
     [ 1., 1., 1.], 
     [ 1., 1., 1.]]), 
'__globals__': [], 
'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Fri May 13 16:38:04 2016'} 
相關問題