У меня проблема с моим смешанным программированием на matlab-java.Я упаковал один из моих файлов matlab m с именем plotDisData.m в jav-файл jar, который входит в этот файл.
hold on
plot(dx, dy,'ob')
Я использовал этот jar-файл в своем java-коде:
public void server(MathUtil mu) throws IOException, MWException {
int port = 8888;
ServerSocket server = new ServerSocket(port);
while(true) {
if(mu.getDisplacement().size() == 150)break;
System.out.println("server waiting for you");
Socket socket = server.accept();
InputStream inputStream = socket.getInputStream();
byte[] bytes = new byte[1024];
int len;
StringBuilder sb = new StringBuilder();
while ((len = inputStream.read(bytes)) != -1) {
sb.append(new String(bytes, 0, len,"UTF-8"));
}
System.out.println("get message from client: " + sb);
JSONObject jobj = (JSONObject)JSONObject.parse(sb.toString());
Accelerometer accel = new Accelerometer();
accel.setAx(jobj.getDoubleValue("ax"));
accel.setAy(jobj.getDoubleValue("ay"));
accel.setAz(jobj.getDoubleValue("az"));
mu.computeVelocity(accel);
Displacement dis = mu.computeDisplacement(accel);
dx = dis.getDx();
dy = dis.getDy();
MatlabPlotter mp = new MatlabPlotter();
mp.plotDisData(dx, dy);
socket.getOutputStream().write(dis.toString().getBytes());
socket.getOutputStream().flush();
List list = mu.getDisplacement();
System.out.println("get message from client: " + sb);
inputStream.close();
socket.close();
server.close();
}
}
Я поместил этот java-код в цикл while и сохранил точку графика (dx, dy).Этот код создает каждый раз фигуру для построения новой точки, но я хочу построить все точки на одной фигуре.Хотя я поместил команду «Hold on» в коде Matlab, похоже, что это не работает в Java.кто-нибудь знает, как решить эту проблему?Это почти убивает меня ....