When used Matlabelengine to execute the same function from Java, I obtained the same result

matlab = MatlabEngine.startMatlab(options);
matlab.eval("data = "+ dto.getName()+"('"+dto.getId()+"')");
String data = matlab.getVariable("data");
function data = getMyData(id)
data = jsonencode(struct("da",id))

댓글 수: 4

mark : Multiple executions the matlab funciton
It's not clear to me:
  • What the problem is here. Unless you're using random data (generated with rand, randn, randi, etc.) it seems like running the same program multiple times and getting the same answer each time is a good thing! Nothing in your code shows that you're using any random numbers.
  • What options you're using when you startMatlab.
  • What the dto variable that you use in your matlab.eval call represents. There's no function by that name in MATLAB.
which -all dto
'dto' not found.
  • Where the getMyData function is being called.
Firstly, my MATLAB script is a function that randomly or fetches data, and there is no problemhis function.
When I execute with tn MATLAB, the output results are random.
But when I use Matlabengine eval in Java, the result obtained from my first execution . there are no changes.
so is this a bug inmatlabengine when i use matlabengine to execute matlab function , i got the same results or
Is there a way to solve this problem
  • my function
matlab script filename 'myTest.m'
function data = getMyData(id)
%do something
%get the random result dataStruct
data = jsonencode(struct("da",dataStruct))
end
java method
JSONObject obj =new JSONObject();
String command = "myTest('10000')";
MatlabEngine matlab=matlab = MatlabEngine.startMatlab(options);
matlab.eval(command);
matlab.close();
when i use matlabengine to obtain multiple execution results, the results are the same every time

댓글을 달려면 로그인하십시오.

 채택된 답변

波鸿
波鸿 2023년 9월 8일
I tried to start Matlabengine through springboot to ensure that there is only one Matlabengine bean for each springboot startup project

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Call MATLAB from Java에 대해 자세히 알아보기

제품

릴리스

R2023a

질문:

2023년 8월 18일

편집:

2023년 9월 8일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by