模塊PICKLE打開Matlab的文件.MAT我想開一家Matlab的項目與模塊泡椒或的cPickle在Python語言。 不:可以用Python
from scipy.io import matlab
mat=matlab.loadmat('file.mat')
我可以用pickle.load
有.MAT文件?
模塊PICKLE打開Matlab的文件.MAT我想開一家Matlab的項目與模塊泡椒或的cPickle在Python語言。 不:可以用Python
from scipy.io import matlab
mat=matlab.loadmat('file.mat')
我可以用pickle.load
有.MAT文件?
你不能。 Pickle
加載已經序列化爲二進制數據的Python對象。格式與Matlab文件格式完全不同。
如果您已經從matlab文件中讀取了需要的所有數據並將其存儲在Python對象中,則可以通過在需要時進行酸洗來存儲它以備後用。
這是不可能的。從泡菜python documentation
鹹菜模塊實現了 序列化和反序列化Python對象結構的根本,但強大的算法。 「酸洗」 是將Python對象層次結構轉換爲 字節流的過程,「取消」是相反的操作,由此將字流轉換回對象層次結構。酸洗(或取消) 或者稱爲「序列化」,「編組」,或者「變平」,但是,爲了避免混淆,這裏使用的術語 是「酸洗」和「取消」。
在你的情況下,你可以加載* .mat對象與scipy.io,然後序列化它在你可能定義的一些python結構。在那一刻,你將能夠輕鬆地醃泡和取下它。 (但最後一步取決於,在某些使用情況下不值得做)。
幾年來,Matlab已經使用HDF5來存儲數據。 Python支持HDF5,通過PyTables
。不需要使用泡菜。事實上,HDF5相對於Pickle的速度可能讓你感到驚訝。一位朋友報告說,對於一些非常大的數據集,讀/寫速度提高2-10倍。
更新1:簡明指南加載文件,經由HDF5,可以發現at this page。
此外,可以找到幾個很好的參考和資源at this page。還有一個PyMat project on Sourceforge。
簡短的回答:你不能,他們是完全不同的格式,繼續使用SciPy ... – Amro
你爲什麼要這麼做?正如其他人已經提到的那樣:由於格式不同,無法完成。 – Egon
聽起來像試圖用錯誤的鑰匙打開鎖,並抱怨門沒有打開。不同的數據類型需要不同的庫或程序來打開它們,這就是生活。 – Michael