Apakah mungkin untuk membaca file .LAT .Lmat biner dengan Python?
Saya telah melihat bahwa SciPy telah menuduh dukungan untuk membaca file .mat, tapi saya tidak berhasil. Saya menginstal SciPy versi 0.7.0, dan saya tidak dapat menemukan loadmat()
metode ini.
save('myfile.mat','-v7')
Baik
scipy.io.savemat
, atauscipy.io.loadmat
berfungsi untuk array MATLAB versi 7.3. Tetapi bagian baiknya adalah bahwa file MATLAB versi 7.3 adalah dataset hdf5. Sehingga mereka dapat dibaca menggunakan sejumlah alat, termasuk NumPy .Untuk Python, Anda memerlukan
h5py
ekstensi, yang membutuhkan HDF5 di sistem Anda.sumber
save
(setidaknya dalam Matlab R2014b) menghasilkan file yang tidak dapat dibaca menggunakan teknik di atas. Jika Anda menggunakan flag '-v7.3', data numerik dapat dibaca dengan baik.save('filename', '-v7.3', 'var1');
Pertama-tama simpan file .mat sebagai:
Setelah itu, dengan Python, gunakan
loadmat
fungsi yang biasa :sumber
Ada paket bagus yang disebut
mat4py
yang dapat dengan mudah diinstal menggunakanMudah digunakan (dari situs web):
Memuat data dari file MAT
Fungsi
loadmat
memuat semua variabel yang disimpan dalam file-MAT ke dalam struktur data Python sederhana, hanya menggunakan Pythondict
danlist
objek. Numerik dan susunan sel dikonversi ke daftar bersarang urutan-urutan. Array diperas untuk menghilangkan array dengan hanya satu elemen. Struktur data yang dihasilkan terdiri dari tipe sederhana yang kompatibel dengan format JSON .Contoh: Memuat file-MAT ke dalam struktur data Python:
Variabel
data
adalahdict
dengan variabel dan nilai-nilai yang terkandung dalam file-MAT.Menyimpan struktur data Python ke file MAT
Data python dapat disimpan ke file-MAT, dengan fungsi
savemat
. Data harus terstruktur dengan cara yang sama seperti untukloadmat
, yaitu harus terdiri dari tipe data sederhana, sepertidict
,list
,str
,int
, danfloat
.Contoh: Simpan struktur data Python ke file MAT:
Parameter
data
harusdict
dengan variabel.sumber
mat4py/cmd.py my.mat
menulismy.json
, 1 baris panjang).mat4py.loadmat.ParseError: Can only read from Matlab level 5 MAT-files
Memiliki MATLAB 2014b atau yang lebih baru diinstal, mesin MATLAB untuk Python dapat digunakan:
sumber
Membaca file
Memeriksa jenis variabel MAT
The kunci dalam kamus yang variabel MATLAB , dan nilai-nilai adalah obyek ditugaskan untuk variabel-variabel .
sumber
Ada juga MATLAB Engine untuk Python oleh MathWorks sendiri. Jika Anda memiliki MATLAB, ini mungkin perlu dipertimbangkan (saya belum mencobanya sendiri tetapi memiliki lebih banyak fungsi daripada hanya membaca file MATLAB). Namun, saya tidak tahu apakah diizinkan untuk mendistribusikannya ke pengguna lain (mungkin tidak masalah jika orang-orang tersebut memiliki MATLAB. Jika tidak, mungkin NumPy adalah cara yang tepat untuk pergi?).
Selain itu, jika Anda ingin melakukan sendiri semua dasar-dasarnya, MathWorks memberikan (jika tautannya berubah, coba ke Google untuk
matfile_format.pdf
atau judulnyaMAT-FILE Format
) dokumentasi terperinci tentang struktur format file. Ini tidak serumit yang saya pikirkan secara pribadi, tetapi jelas, ini bukan cara termudah untuk pergi. Itu juga tergantung pada berapa banyak fitur.mat
-file yang ingin Anda dukung.Saya telah menulis skrip Python "kecil" (sekitar 700 baris) yang dapat membaca beberapa
.mat
file dasar . Saya bukan ahli Python atau pemula dan butuh sekitar dua hari untuk menulisnya (menggunakan dokumentasi MathWorks yang ditautkan di atas). Saya telah belajar banyak hal baru dan itu cukup menyenangkan (sebagian besar waktu). Karena saya sudah menulis skrip Python di tempat kerja, saya khawatir saya tidak dapat mempublikasikannya ... Tetapi saya dapat memberikan beberapa saran di sini:.mat
-file yang ingin Anda uraikan.miCOMPRESSED
,miMATRIX
,mxDOUBLE
, ataumiINT32
).mat
-file optimal untuk menyimpan elemen data dalam struktur data pohon; setiap node memiliki satu kelas dan subnodesumber
Anda dapat menggunakan kode di atas untuk membaca file .mat default yang disimpan dalam Python.
sumber