Ngoài ra còn có MATLAB Engine for Python bởi MathWorks. Nếu bạn có Matlab, điều này có thể đáng xem xét (tôi đã không thử nó bản thân mình nhưng nó có nhiều chức năng hơn là chỉ đọc các tập tin Matlab). Tuy nhiên, tôi không biết nếu nó được phép phân phối nó cho người dùng khác (có lẽ không có vấn đề nếu những người có Matlab, nếu không có lẽ NumPy là đúng cách để đi?).
Ngoài ra, nếu bạn muốn tự mình làm tất cả những điều cơ bản, MathWorks provides (nếu liên kết thay đổi, hãy thử google cho matfile_format.pdf
hoặc tiêu đề MAT-FILE Format
) tài liệu chi tiết về cấu trúc của định dạng tệp. Nó không phức tạp như tôi nghĩ nhưng rõ ràng, đây không phải là cách dễ nhất để đi. Nó cũng phụ thuộc vào, có bao nhiêu tính năng của .mat
-files bạn muốn hỗ trợ.
Tôi đã viết một tập lệnh Python "nhỏ" (khoảng 700 dòng) có thể đọc một số số cơ bản .mat
-files. Tôi không phải là một chuyên gia về Python cũng không phải là người mới bắt đầu và tôi mất khoảng hai ngày để viết nó (sử dụng tài liệu MathWorks được liên kết ở trên). Tôi đã học được rất nhiều thứ mới và nó khá thú vị (phần lớn thời gian). Như tôi đã viết kịch bản Python tại nơi làm việc, tôi sợ tôi không thể xuất bản nó ... Nhưng tôi có thể đưa ra một vài lời khuyên ở đây:
- Đầu đọc tài liệu
- Sử dụng một HEX-Editor (như HxD) và nhìn vào một tài liệu tham khảo
.mat
-file bạn muốn phân tích
- Cố gắng tìm ra ý nghĩa của từng Byte bằng cách tiết kiệm các Bytes đến một txt file và chú thích mỗi dòng
- Sử dụng các lớp học để tiết kiệm mỗi dữ liệu phần tử (chẳng hạn như
miCOMPRESSED
, miMATRIX
, mxDOUBLE
hoặc miINT32
)
- Cấu trúc
.mat
-files 'tối ưu để lưu các phần tử dữ liệu trong cấu trúc dữ liệu cây; mỗi nút có một lớp và subnodes
Hướng dẫn chính thức của SciPy.io: http://docs.scipy.org/doc/scipy/reference/tutorial/io.html –
scipy không hỗ trợ tệp mat v7.3 (xem ghi chú [tại đây] (http : //docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.io.loadmat.html)). Xem [answer by vikrantt] (http://stackoverflow.com/a/19340117/674976) để biết giải pháp. Tuy nhiên, – texnic
, bạn có thể lưu các tệp mat như các phiên bản trước đó. xem: http://www.mathworks.com/help/matlab/import_export/mat-file-versions.html (tiêu đề: 'Lưu vào Phiên bản Tệp Phiên bản Không Định trước') – watsonic