2013-01-11 36 views
16

MATLAB cung cấp hộp công cụ (Matlab Coder, trình biên dịch Matlab, Simulink Coder) để tạo mã nguồn C và C++ cho chức năng dựng sẵn. Tôi tự hỏi nếu có bất kỳ hộp công cụ hoặc tính năng để tạo mã nguồn java (không mã hóa JAR/lớp tập tin) cho mã MATLAB/xây dựng trong các chức năng?Matlab có thể tạo mã nguồn Java không?

+3

* "không được mã hóa các tệp JAR/lớp" * Chúng được mã hóa dưới dạng tệp nhị phân, thay vì được mã hóa (theo mặc định). –

Trả lời

5

Tôi nghĩ rằng đó là sản phẩm bạn đang tìm kiếm: MATLAB Builder JA (nhưng builder mã hóa chức năng MATLAB của bạn và tạo ra một wrapper Java xung quanh họ để họ cư xử giống như bất kỳ lớp Java khác.)

+0

Tôi nghĩ rằng chạy bên trong một thời gian chạy, do đó, có chi phí cho nó. Một thay thế là bộ mã hóa MATLAB tạo mã C mà bạn có thể gọi bằng cách sử dụng JNI. – ggb667

11

Không có gì sẽ chuyển đổi mã nguồn MATLAB thành mã nguồn Java. Sản phẩm bổ sung MATLAB Builder JA sẽ lưu trữ và mã hóa mã nguồn MATLAB của bạn và tạo một trình bao bọc tệp jar độc lập cho phép bạn gọi mã MATLAB từ Java, nhưng nó không tạo mã nguồn Java. Lưu ý rằng MATLAB Coder và Simulink Coder sản xuất C, không phải mã C++ và trình biên dịch MATLAB hoạt động theo cách tương tự với Builder JA, lưu trữ và mã hóa mã MATLAB của bạn và tạo ra một trình bao bọc có thể thực thi được.

Chỉnh sửa: kể từ khi phát hành R2015b, chức năng tạo tệp .jar đã được chuyển từ MATLAB Builder JA sang MATLAB Compiler SDK sản phẩm mới, cũng sẽ tạo tệp .dll và hội đồng .NET. MATLAB Builder JA không còn tồn tại như một sản phẩm.

+0

Simulink Coder có thể tạo ra C++ [link] (http://www.mathworks.com/products/simulink-coder/description1.html) – pmb

+0

@pmb Nếu bạn muốn sử dụng trình biên dịch C++, bạn có thể nói với MATLAB hoặc Simulink Coder, và nó sẽ tạo ra một tệp '.cpp' với mã C++ để bọc mã C của nó. Nhưng nó không thực sự tạo ra mã C++ thích hợp, ví dụ, sử dụng các lớp. Nó thực sự tạo ra mã C. –

+0

đúng, nó không phải là OO C++, nhưng C++ vẫn vậy. Tôi chỉ nghĩ rằng có thể là tốt khi thêm rằng vì ai đó có thể nghĩ rằng họ không thể sử dụng Simulink Coder vì điều đó ... – pmb

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