Как передать вывод Java в качестве переменной Matlab? - PullRequest
0 голосов
/ 21 мая 2011

Я написал программу на Java, которая вызывается с помощью функции system (), поэтому она запускается в командном окне Matlab. Теперь я хочу знать, есть ли другой способ запустить программу на Java, кроме запуска ее в командной строке? Может ли он быть запущен на любом пользовательском интерфейсе в Matlab? Другая проблема заключается в том, что я хочу знать, имеет ли моя программа какое-либо строковое значение в качестве вывода, которое обычно отображается в командном окне, как я могу сохранить его в переменной в Matlab?

Надеюсь услышать вас очень скоро.

Ответы [ 3 ]

1 голос
/ 21 мая 2011

Решение Hello World от MathWorks дает некоторое представление о том, как запустить простое Java-приложение «Hello World» внутри MATLAB. Вы можете немного изменить код Java, чтобы иметь метод, который возвращает строку.

public class HelloWorld 
{
    public String hello()
    {
        String helloWorld = "Hello World!";
        return helloWorld;
    }
}

Как только этот простой класс скомпилирован и на пути к классам JVM MATLAB создайте экземпляр и вызовите метод с помощью следующих двух команд.

o = HelloWorld
output = o.hello;

Строка, возвращаемая экземпляром HelloWorld, присваивается переменной MATLAB output.

Нет необходимости в команде system с кодом Java в MATLAB. У вас есть прямой доступ к JVM из MATLAB. Для приложения со сложным графическим интерфейсом перейдите на Java.

Недокументированная Java является ценным источником информации о MATLAB, Java и графических интерфейсах.

0 голосов
/ 04 апреля 2019

По умолчанию ваш класс JAVA является закрытым. Добавьте общедоступное ключевое слово, чтобы matlab мог получить доступ к классу и создать объект.

public class HelloWorld
0 голосов
/ 22 мая 2011

Да, правильный путь к классам.

Я изменил код, используя его без основного ..

class HelloWorld
{
        public String Hello()
        {
            String helloWorld="Hello World!";
            return helloWorld;
        }
}

Теперь, согласно руководству, я пытаюсь создать экземпляр obj в Matlab, используя следующую команду:

o = HelloWorld;

Здесь я получаю следующую ошибку:

??? Нет конструктора HelloWorld с соответствующая подпись найдена.

Следующая команда указала это так:

output = o.hello;

, который не будет работать, если не создан экземпляр.

...