【问题标题】:how to pass java output as a matlab variable?如何将java输出作为matlab变量传递?
【发布时间】:2011-05-21 05:47:32
【问题描述】:
我编写了一个使用 system() 函数调用的 Java 程序,因此它在 Matlab 的命令窗口上运行。现在我想知道除了在命令窗口上运行Java程序之外,是否还有另一种方式来运行Java程序?它可以在 Matlab 中任何用户制作的 GUI 上运行吗?另一个问题是,我想知道我的程序是否有一些字符串值作为输出,通常显示在命令窗口中,我如何将它存储在 Matlab 中的变量中?
希望很快收到您的来信。
【问题讨论】:
标签:
java
user-interface
function
matlab
【解决方案1】:
The MathWorks 的Hello World 解决方案提供了一些关于如何在 MATLAB 中运行简单的“Hello World”Java 应用程序的见解。您可以稍微更改 Java 代码,以获得返回字符串的方法。
public class HelloWorld
{
public String hello()
{
String helloWorld = "Hello World!";
return helloWorld;
}
}
编译这个简单的类并在 MATLAB JVM 类路径上创建一个实例并使用以下两个命令调用该方法。
o = HelloWorld
output = o.hello;
HelloWorld 实例返回的字符串被分配给 MATLAB 变量 output。
在 MATLAB 中不需要带有 Java 代码的 system 命令。您可以从 MATLAB 内部直接访问 JVM。对于具有复杂 GUI 的应用程序,请使用 Java。
Undocumented Java 是关于 MATLAB、Java 和 GUI 的宝贵资源。
【解决方案2】:
是的,类路径设置是正确的。
我修改了代码,没有使用 main..
class HelloWorld
{
public String Hello()
{
String helloWorld="Hello World!";
return helloWorld;
}
}
现在,按照指导,我尝试在 Matlab 中创建实例 obj,使用以下命令:
o = HelloWorld;
这里我得到以下错误:
???没有构造函数'HelloWorld'
找到匹配的签名。
下一个命令表明它:
output = o.hello;
除非创建实例,否则不会工作。