gpt4 book ai didi

java - Java 应用程序如何与 MATLAB 通信

转载 作者:行者123 更新时间:2023-11-30 08:50:58 25 4
gpt4 key购买 nike

我有一些mex文件急需通过MATLAB调用,目前没有办法。但是,我真的很鄙视 MATLAB 的 GUI(在)可能性,并且想创建一些例如JavaFX 应用程序。

我的问题:Java 应用程序如何与正在运行 的 MATLAB 实例通信?

我知道您可以将 Java 对象包含到 MATLAB 中,但我更希望有一个独立的 Java 应用程序。

最佳答案

Java可以通过命令行执行命令例如:

 Process process = Runtime.getRuntime().exec(command);
process.waitFor();

因此可以在 Java 中通过命令行执行 MATLAB 脚本。

在 MATLAB 中,可以将任何需要的数据写入文件。我不记得你可以这样做的确切方式。 http://www.mathworks.com/help/matlab/ref/fprintf.html举个例子:

x = 0:.1:1;
A = [x; exp(x)];

fileID = fopen('exp.txt','w');
fprintf(fileID,'%6s %12s\n','x','exp(x)');
fprintf(fileID,'%6.2f %12.8f\n',A);
fclose(fileID);

这是一种变通方法,但它应该有效,而且实现起来并不难。

更新

如果 Matlab 已经在运行并且您想在另一个应用程序 (Java) 中与它通信,则可以通过本地主机使用网络连接来完成。 Matlab 可能会监听一些预定义的端口(代码示例请参见 http://www.mathworks.com/matlabcentral/fileexchange/11802-matlab-tcp-ip-code-example )并在通过 Java 发送“开始”触发器时执行一些操作(甚至一些数据与触发器一起发送)。在 Java 中,您可以使用 Socket 类(可以在此处找到一些代码示例 http://www.javaworld.com/article/2077322/core-java/core-java-sockets-programming-in-java-a-tutorial.html)。

也可以将数据写入文件。例如,Java 将一些命令添加到一些具有预定义名称 (command.txt) 的文件中。 Matlab 在一个循环中扫描这个文件,当在那里找到一些东西时它开始计算(并且 Java 应用程序等待一些 results.txt 文件中的结果)。

关于java - Java 应用程序如何与 MATLAB 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30737279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com