我有一个matlab函数,它调用一个java函数来显示GUI。
function [] = Start(x, y)
main.Main.main({x,y});
end
我需要在调用main函数之前运行 clear java; 命令。删除上一次运行中的任何数据。
但是这样做,输入变量x和y也会从内存中删除。
在运行main函数之前,如何确保内存清零? (在调用clear java;
之前从命令行运行Start(x,y)
不是一个选项。)
答案 0 :(得分:0)
如果在基本工作区中定义了x
和y
,那么您可以按照以下方式执行操作:
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