折腾来折腾去

pikipity的blog

MATLAB 的函数中清理公用 Workspace

今天在编写一个 MATLAB 函数的时候,尝试使用 clear all; 来清理掉 workspace,结果运行后发现完全没有效果。查找了一下 MATLAB 的帮助文件才发现,每个函数在运行的时候都有自己的 workspace,所以如果在函数内部使用 clear 的话,清空的是函数自己的 workspace,不会影响到公用的 workspace。于是又到 mathwork 的 MATLAB Center 逛了一下,发现了一种很好的方法:使用 evalin() 函数。原帖在这里

总结一下,就是使用下面的语句:

evalin('caller','clear all');

或者使用

evalin('base','clear all');

主要区别是,前一个不仅会清空公用 workspace,也会清空其他函数的 workspace。后一个仅仅只清空公用的 workspace。



Comments