Очистка памяти Java в функции Matlab - PullRequest
0 голосов
/ 04 мая 2011

У меня есть функция Matlab, которая вызывает функцию Java для отображения графического интерфейса.

function [] =  Start(x, y)    
    main.Main.main({x,y});   
end

Мне нужно выполнить команду clear java; перед вызовом основной функции. Для удаления любых данных из предыдущего запуска.

Но при этом входные переменные x и y также стираются из памяти.

Как я могу убедиться, что память очищена перед запуском основной функции? (Запуск clear java; из командной строки перед вызовом Start(x,y) не вариант).

Ответы [ 2 ]

0 голосов
/ 09 марта 2014
clear java

... очищает путь к классу java, а также переменные в области видимости, не очищает «переменные java».

Если вам нужно удалить данные из предыдущего запуска, вам нужноочистить эти данные.Если эти данные находятся в объекте Java, вам может потребоваться очистить любые ссылки на этот объект.

См. http://www.mathworks.com.au/help/matlab/ref/clear.html для получения дополнительной информации

0 голосов
/ 04 мая 2011

Если x и y определены в базовом рабочем пространстве, то вы можете сделать что-то вроде этого:

function [] = Start
    clear java
    x = evalin('caller', 'x');
    y = evalin('caller', 'y');
    main.Main.main({x,y});
end

Однако это ужасный взлом и не рекомендуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...