【问题标题】:How do I notify a MATLAB object of an event in a Java object?如何将 Java 对象中的事件通知给 MATLAB 对象?
【发布时间】:2011-05-16 13:27:10
【问题描述】:

为简单起见,假设我有一个 Java 对象,它以随机间隔的时间间隔生成一个随机数。我希望每次生成这些随机数之一时通知一个 MATLAB 对象(以便 MATLAB 对象可以对数据执行一些任务)。

我怎样才能实现这样的东西?如何让 Java 对象通知 MATLAB 对象发生了什么事?

附:我是一名强大的 MATLAB 程序员,但对 Java 还是很陌生。

【问题讨论】:

标签: java matlab


【解决方案1】:

我不知道,用java如何与Matlab通信。但是你应该使用 Observable 对象。并实现你的。当可观察对象通知 EDT 时,观察者将发送“通知”某事发生了变化。

这就是 Observable 模式。

也许看看: https://docs.oracle.com/javase/7/docs/api/java/util/Observer.html

最好的问候。

【讨论】:

    【解决方案2】:

    我只从 C 中完成了这个,它似乎是更好的选择。总之,跟着

    http://undocumentedmatlab.com/blog/jmi-wrapper-remote-matlabcontrol/

    看起来最好的方法是利用对 COM 接口 (Windows) 和进程管道 (Unix/Mac) 的文档支持。

    希望对你有帮助

    【讨论】:

    • kellogs,我需要在 C(不是 Java 或 COM)中执行此操作,您能指出我正确的方向吗?谢谢。
    • 刚到这里,如果您仍然需要指针 - 在文档中搜索诸如 mexFunction 之类的东西 - C 模块中的入口点、mxGetPr、mxCreateDoubleMatrix - 用于将数据输出/输入 Matlab 的函数。抱歉,我已经从我的电脑上卸载了 Matlab。哦,要小心矩阵,因为 Matlab 使用 m[j][i],而你通常使用 m[i][j] (Matlab 中列在前)
    • kellogs,我想我对 MEX 函数很熟悉。我实际上正在使用 loadlibrary/libpointer/libstruct 方法来连接与另一台服务器通信的 DLL。该 DLL 可以有异步事件,我希望能够将这些事件传播回 Matlab。我已经在 J​​ava 中看到(并实际使用)了一些这样做的方法。我想找到一种纯 C/C++ 方式来进行相同的事件传播。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2010-11-19
    相关资源
    最近更新 更多