在matlab函数中清除java内存

时间:2011-05-04 07:43:46

标签: matlab

我有一个matlab函数,它调用一个java函数来显示GUI。

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

我需要在调用main函数之前运行 clear java; 命令。删除上一次运行中的任何数据。

但是这样做,输入变量x和y也会从内存中删除。

在运行main函数之前,如何确保内存清零? (在调用clear java;之前从命令行运行Start(x,y)不是一个选项。)

2 个答案:

答案 0 :(得分:0)

如果在基本工作区中定义了xy,那么您可以按照以下方式执行操作:

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

然而,这是一个可怕的黑客,不推荐!

答案 1 :(得分:0)

clear java

...清除java类路径,以及范围内的变量,它不会清除“java变量”。

如果您需要删除上一次运行中的数据,则需要清除该数据。如果该数据在Java对象中,那么您可能需要清除对该对象的任何引用。

有关详细信息,请参阅http://www.mathworks.com.au/help/matlab/ref/clear.html