Я сделал то же самое, так что да, это возможно.
Ссылка на MatlabControl (Running MATLAB function from Java) полезна, но этого было недостаточно в моем случае.
В случае, если вы просто хотите отобразить некоторые (статические) данные из базового рабочего пространства Matlab (запуск некоторых скриптов), то этого достаточно, так как вы можете использовать класс MatlabControl.
В случае, если вы хотите какое-то реальное взаимодействие (у вас есть модель домена в Matlab и вы хотите внести изменения в модель домена при некотором взаимодействии с пользователем, а затем обновите интерфейс), то этого класса недостаточно (у меня нет использовал его).
Чтобы отправить события из Java в Matlab: http://undocumentedmatlab.com/blog/matlab-callbacks-for-java-events
Если у вас есть немного более сложное приложение, то структура будет выглядеть:
- GUI разработан в JavaFX:
- предоставляет методы, используемые для обновления GUI
- вызывает события, которые могут обрабатываться Matlab
- Matlab GUI Handler:
- ручка JAVA события
- вызывает функцию обновления в Java, основанный на состоянии внутреннего интерфейса Matlab
- Matlab бэкенд
Это также зависит от того, какую версию Matlab вы должны поддерживать: в случае, если вы должны поддерживать версию ML < R3013a => Matlab поставляется с Java6 JVM. В этом случае вы можете предоставить среду исполнения JavaFX 2.2 (загрузка среды, размещение рядом с вами кода и добавление javafxrt.jar в путь к классам). Из R2013a вы можете пойти с JavaFX 8. Если вам повезло, и вам нужно поддерживать только R2015 -> поставляется с Java8 -> он включает JavaFX.
Надеюсь, это поможет.
См. Http://stackoverflow.com/questions/1607933/running-matlab-function-from-java –
спасибо, я это увижу – ridoibm75