Tôi muốn chương trình Matlab gọi một tệp java, tốt nhất là với một ví dụ.Gọi Java từ MATLAB?
Trả lời
Ok, tôi sẽ cố gắng đưa ra một ví dụ nhỏ tại đây. Hoặc sử dụng các hàm java ngay từ cửa sổ Matlab như zellus gợi ý, hoặc, nếu cần giấy phép, hãy tạo lớp java của riêng bạn. Dưới đây là ví dụ:
package testMatlabInterface;
public class TestFunction
{
private double value;
public TestFunction()
{
value = 0;
}
public double Add(double v)
{
value += v;
return value;
}
}
Sau đó, biến nó thành tệp jar. Giả sử bạn đặt các tập tin trong một thư mục có tên testMatlabInterface
, chạy lệnh này tại cửa sổ dòng lệnh:
jar cvf testMatlab.jar testMatlabInterface
Sau đó, trong Matlab, điều hướng đến thư mục mà tập tin testMatlab.jar
của bạn có vị trí và chạy lệnh, import testMatlabInterface.*
nhập khẩu tất cả các lớp học trong gói testMatlabInterface
. Sau đó, bạn có thể sử dụng lớp học như vậy:
>> methodsview testMatlabInterface.TestFunction
>> me = testMatlabInterface.TestFunction()
me =
[email protected]
>> me.Add(10)
ans =
10
>> me.Add(10)
ans =
20
>> me.Add(10)
ans =
30
Hãy cho tôi biết nếu tôi có thể hỗ trợ thêm.
Cảm ơn rất nhiều! Bài đăng của bạn rất hữu ích. –
Có ba trường hợp cần xem xét.
Thư viện cài sẵn Java.
Tức là, mọi thứ được mô tả here. Các mục này chỉ có thể được gọi trực tiếp. Ví dụ:
map = java.util.HashMap; map.put(1,10); map.put(2,30); map.get(1) %returns 10
Biến chứng duy nhất là ánh xạ Matlab thực hiện giữa các loại dữ liệu Matlab và các loại dữ liệu Java. Các ánh xạ này được mô tả here (Matlab to Java) và here (Java to Matlab). (Tl; dr: thường là ánh xạ như bạn mong đợi)
precompiled file * .jar
Trước tiên, bạn cần phải thêm chúng vào đường dẫn lớp java của Matlab. Bạn có thể làm điều này tự động (có nghĩa là, kỳ họp mỗi Matlab, không cần nhà nước Matlab), như sau:
javaaddpath('c:\full\path\to\compiledjarfile.jar')
Bạn cũng có thể thêm các tĩnh bằng cách chỉnh sửa tập tin classpath.txt. Để biết thêm thông tin, hãy sử dụng
docsearch java class path
.Tệp biên dịch * đã biên dịch trước.
Các tệp này tương tự như tệp * .jar, ngoại trừ bạn cần phải thêm thư mục chứa tệp lớp, thay vì bản thân các tệp lớp. Ví dụ:
javaaddpath('c:\full\path\to\directory\containing\class\files\') %NOT THIS: javaaddpath('c:\full\path\to\directory\containing\class\files\classname.class')
Cảm ơn rất nhiều. Hướng dẫn của bạn thực sự đã giúp! –
ngoại lệ không tìm thấy lớp, mặc dù tôi đã thêm đường dẫn – zinking
@zinking đảm bảo khi bạn biên dịch các lớp Java của mình, bạn đang nhắm mục tiêu phiên bản JRE ít nhất là phiên bản cũ với bản phát hành MATLAB bạn đang sử dụng. Nếu classfiles của bạn có một số phiên bản mới hơn số được hỗ trợ bởi JRE của MATLAB, chúng sẽ không được tải và bạn sẽ nhận được một ClassNotFoundException khi bạn cố gắng sử dụng chúng. Ví dụ, R2006b giao với JRE5, vì vậy bạn cần sử dụng 'javac --source 1.5 --target 1.5
- 1. Gọi Java từ MATLAB
- 2. Gọi hàm gọi lại MATLAB/hàm xử lý từ Java
- 3. Chạy hàm MATLAB từ Java
- 4. Cách gọi hàm Matlab từ C++
- 5. Gọi chức năng Matlab từ python
- 6. đọc dữ liệu từ Matlab vào Java
- 7. Gọi Java từ
- 8. Tạo biểu đồ cuộc gọi từ mã src MATLAB
- 9. MATLAB: Java String [] chuyển đổi
- 10. UnsatisfiedLinkError Khi tải một thư viện từ Java trong MATLAB
- 11. Gọi Java servlet từ Android
- 12. gọi R script từ java
- 13. Gọi gnuplot từ java? (ubuntu)
- 14. Gọi mã C# từ Java?
- 15. Gọi mã Scala từ Java?
- 16. Gọi C# dll từ Java
- 17. Gọi C++ dll từ Java
- 18. Gọi hàm Oracle từ Java
- 19. Làm thế nào để chạy mã MATLAB từ Java?
- 20. Responsive GUI MATLAB mà không gọi drawnow() trực tiếp
- 21. Thực hiện giao diện Java trong MATLAB
- 22. Muốn gọi lệnh shell linux từ Java
- 23. Mã Lisp được gọi từ Java
- 24. Cách gọi một servlet từ mã Java
- 25. gọi Dịch vụ an toàn từ Java
- 26. Gọi phương thức Win32 API từ Java
- 27. Cách gọi chức năng C++ từ java
- 28. Cách gọi hàm Clojure variadic từ Java
- 29. Gọi một lớp java từ perl
- 30. Gọi tập lệnh Powershell từ Java
vui lòng đọc tài liệu. [Sử dụng thư viện Java từ MATLAB] (http://www.mathworks.ch/help/techdoc/matlab_external/f44062.html) – zellus