“ 本文适用于Windows 7及以上系统,MATLAB R2017a版本,语言是英文,请用中文版的米娜桑自行翻译 ,(づ ̄ 3 ̄)づ ”

作为一个资深电子产品洁癖患者,我是绝对不会让我的电脑桌面密密麻麻层层叠叠、存储空间乱七八糟毫无秩序、收件箱铺天盖地未读消息...有次借电脑用看到一个开了几十个个标签页的浏览器,我好想当场去世o(╥﹏╥)o

写MATLAB的大家都应该知道,程序运行过程中的变量都会暂时储存在电脑memory里,并且可以在Workspace中查看。然而我之前写程序发现有一些中间变量,和最终输出结果无关,却在Workspace里占据大量位置。解决方法呢就是clearvars这个函数。

所谓clearvars, i.e. clear variables from memory 是也。 举例:有如下一个for循环,将input中的数求平方输出为output。那i是我们不需要的,所以在for循环结束,i的任务完成后将它清除掉,释放memory空间也释放了一个变量名,workspace中整洁度也提升了。

for i=1:length(input)output(i)=input(i)^2;endclearvars i; %这里是用command形式调用的,函数形式为clearvars ('i')clearvars 直接调用会清除所有当前workspace的变量,也可以通过增加input arguments从而只删除某些变量 (如上例)、只保留某些变量、删除全局变量等等 [1]。经常清理,不但可以保证workspace干净整齐,还可以释放memory,加速程序运行。

【进阶班】:有些朋友可能会问了,为什么不用clear函数呢?clear也是用来清理不再需要的item的,但不限于变量,script、function等也可以被清除[2]。但是由于可能有相同名字的item, 需要明确要清除的item的类型。clearvars相当于已经明确类型为item了。当然对于简单的script,这两个是可以互换的。

【一些私货】:个人整洁程度和工作效率、创造力的相关性一直有争议,有些人表示我全靠搜索也能很好地工作学习呀,还有一些真的假的名人名言(比如什么“爱因斯坦曾说过,‘桌面不整洁的人一定很聪明’”之类的),搞得这事儿非黑即白,不同习惯的人互相鄙视,甚至上升到势不两立的程度。

私以为,这事儿真的是个人习惯问题,无所谓优劣。我身边许多朋友没有严苛的对待物品的整洁程度,一样生活的很舒服,工作学习也很有成就。不过作为一名程序员写代码的,整洁流畅的代码应当作为基本习惯,直至深化为本能。