Calling User-defined Script from Java
조회 수: 6 (최근 30일)
이전 댓글 표시
I've installed R2017a and try to use Matlab Engine API for Java to run a user-defined script/function from Java.
The examples provided here(https://uk.mathworks.com/help/matlab/matlab_external/java-example-source-code.html) work perfectly fine. These examples, however, make use of Matlab package functions such as gcd, max etc.
I can't find any examples that enable to import and execute Matlab scripts (functions) defined by a user. Some examples for Python are provided here(https://uk.mathworks.com/matlabcentral/answers/322114-calling-script-from-python) but unfortunately, do not work in Java.
Any ideas how to achieve this functionality?
답변 (1개)
Amit Doshi
2017년 9월 8일
Hello,
You can call your function using 'eval'.
For example,
//Start MATLAB asynchronously
Future<MatlabEngine> eng = MatlabEngine.startMatlabAsync();
// Get engine instance
MatlabEngine ml = eng.get();
// Evaluate the command to cd to your function
ml.eval("cd path/to/funtion");
// Evaluate the function
ml.eval("myFunction(args)");
댓글 수: 2
Jiss George
2018년 4월 22일
can u please give more explanation, when i am executing this ml.eval("cd path/to/funtion"); am getting error as cd can't cd to directory.
Manuel Lindorfer
2018년 11월 23일
You have to specify the apostrophes properly when executing the command, similar to when executing it within the Matlab environment. For example,
// Start Matlab
Future<MatlabEngine> engine = MatlabEngine.startMatlabAsync();
MatlabEngine eng = engine.get();
// Change directory and evaluate your function
eng.eval("cd 'path/to/your/function'");
eng.feval("yourFunction", param1, param2, ...);
참고 항목
카테고리
Help Center 및 File Exchange에서 Call MATLAB from Java에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!