在 MATLAB 中,是不是可以重新定义 `clear` 以清除命令窗口,而不是清除存储的变量?

Posted

技术标签:

【中文标题】在 MATLAB 中,是不是可以重新定义 `clear` 以清除命令窗口,而不是清除存储的变量?【英文标题】:In MATLAB, is it possible to redefine `clear` to clear the command window, rather than clear the stored variables?在 MATLAB 中,是否可以重新定义 `clear` 以清除命令窗口,而不是清除存储的变量? 【发布时间】:2015-10-19 15:29:03 【问题描述】:

是否可以将clear 函数重新定义为clc? 我习惯使用 *nix 终端,所以很多时候,当我想清除命令窗口时,我最终会清除存储的变量。


这是我的理想方案。

clear 清除命令窗口,还有一些其他命令,可能clearvars 清除定义的变量。

【问题讨论】:

没有。请不要这样做。只需习惯于调用clc 而不是clear。如果你是一个国家的新移民,你不会将你以前国家的原则强加给它的公民。因此,不要试图将 Unix 原理强加到 MATLAB 上。 clear改写成clc的问题是,当你把你的脚本移植到另一台机器或者从其他机器导入脚本到你的机器时,clear会被调用,而不是它预计会这样做。 @rayryeng 和 Adriaan:我同意,重载 clear 不是一个好主意,但这是一个关于重载内置函数的有效问题。这可能不是最好的问题,但恕我直言,它不值得所有的反对。不知道重载 clear 可能会导致不良后果与“给我 codez”或其他不好的问题不同。 @StewieGriffin - FWIW,我没有投反对票。这其实是个好问题,但不推荐使用。 【参考方案1】:

为防止数据丢失,您可以创建自己的clear.m,它什么都不做:

function clear(varargin)
   warning('call of clear skipped');
end

如果你真的想访问clear,你必须使用builtin

我建议将此文件保留在您的搜索路径上几周,直到您习惯 matlab 命令名称。

【讨论】:

以上是关于在 MATLAB 中,是不是可以重新定义 `clear` 以清除命令窗口,而不是清除存储的变量?的主要内容,如果未能解决你的问题,请参考以下文章

安全清除内存并重新分配

matlab 的 k 均值是不是会重新计算种子的集群成员?

如何在 Matlab 中循环保存文件?

在MATLAB中如何实现一段while循环后,判断是不是符合条件,若不符合重新回到while?

根据欧几里德距离创建围绕圆的等距点:MATLAB

MATLAB中读取excel数据