2010-04-23 35 views
10

Tôi có một số dữ liệu mà tôi muốn lưu vào tệp MAT (phiên bản 4 hoặc 5 hoặc bất kỳ phiên bản nào, cho vấn đề đó). Việc nắm bắt: Tôi muốn làm điều này mà không cần sử dụng thư viện MATLAB, vì mã này sẽ không cần thiết chạy trong một máy tính với MATLAB. Chương trình của tôi sử dụng Java và C++, vì vậy bất kỳ thư viện hiện có nào trong các ngôn ngữ đạt được điều này có thể giúp tôi ...Viết tệp MAT mà không sử dụng tiêu đề và thư viện MATLAB

Tôi đã nghiên cứu nhưng không tìm thấy gì trong Java/C++. Tuy nhiên, tôi thấy rằng scipy trên python đạt được điều này với mio4.py hoặc mio5.py. Tôi nghĩ về việc thực hiện điều này trên java hoặc C++, nhưng có vẻ như một chút trong lịch trình thời gian của tôi.

Vì vậy, câu hỏi đặt ra là: có thư viện nào trong Java hoặc C/C++ cho phép lưu tệp MAT mà không sử dụng thư viện Matlab không?

Cảm ơn rất nhiều

+1

Tôi lấy nó là bạn đã tìm thấy bản sao Tài liệu của Mathwork 'Định dạng tệp MAT' và không muốn cuộn mã của riêng bạn cho đến khi bạn hết khả năng SO giúp bạn tìm thấy thư viện viết tay? –

Trả lời

12

C: matio
Java: jmatio
(Tôi thực sự bị cám dỗ để, vì vậy tôi sẽ, nói với bạn để tìm hiểu để google)

Nhưng thực sự, nó không phải là khó để viết matfiles sử dụng fwrite nếu bạn không cần phải xử lý một số công cụ phức tạp hơn (các cấu trúc lồng nhau, các lớp, hàm, ma trận thưa thớt, v.v.).
Xem: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf

+1

Tôi đã có một vấn đề tương tự một số thời gian trước đây và kết thúc bằng văn bản một tập hợp các chức năng như là một thay thế thả cho API MATLAB để viết .matfiles. Không có gì lạ mắt, nhưng nó làm những điều cơ bản (bao gồm cả cấu trúc ans nesting). Nó lên trên github: http://github.com/EyNuel/matOut/wiki –

5

Tệp MAT kể từ phiên bản 7 dựa trên HDF5. Tôi nhớ rằng họ sử dụng một số công ước khá buồn cười, nhưng bạn có thể đảo ngược kỹ sư những gì bạn cần. Chắc chắn có các thư viện viết HDF5 cho cả Java và C++.

Cùng với những dòng này, Matlab có thể đọc/ghi một số định dạng chuẩn, bao gồm HDF5. Nó có thể dễ dàng nhất để ghi dữ liệu của bạn trong HDF5 "chuẩn" và đọc nó vào cấu trúc dữ liệu mong muốn trong Matlab.

+0

+1 Tôi nghĩ rằng tôi đã đọc ở đâu đó nhưng không bao giờ có thể tìm thấy xác nhận khi tôi tìm kiếm. Bạn nâng cao một khả năng khác, OP có thể đọc/ghi các tập tin HDF5 mà MATLAB chắc chắn có thể xử lý bất cứ điều gì nó thực hiện riêng của các tập tin MAT có thể được. –

+0

@HPM Điểm tuyệt vời. Tôi sẽ đề cập đến điều đó. –

+0

HDF5 là hàng chính. Mat là cột chính. 'Help' hiện tại trên hdf5write giải thích một chút về lý do tại sao điều này có thể là một điều xấu – KitsuneYMG

Các vấn đề liên quan