2011-05-04 164 views
0

我有一个matlab函数,它调用一个显示GUI的java函数。在matlab函数中清除java内存

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

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

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

如何在运行主函数之前确保内存清空? (在调用Start(x,y)之前,不能从命令行运行clear java;)。

回答

0

如果xy在基地工作区定义,那么你可以沿着这些路线做一些事情:

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

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

0
clear java 

...清除java类路径以及作用域中的变量,但不清除“java变量”。

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

请参阅http://www.mathworks.com.au/help/matlab/ref/clear.html了解更多信息