我的matlab-java混合编程有问题。我将一个名为plotDisData.m的matlab m文件打包到一个java文件中,该文件包含该文件。
hold on
plot(dx, dy,'ob')
我在我的java代码中使用了这个jar文件:
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)。这段代码每次创建一个图形来绘制新点,但我想要的是在一个图中绘制所有点。 虽然我把'#34;抓住"在matlab代码中命令,似乎这在java中不起作用。有谁知道如何解决这个问题?这几乎杀了我......