Main Content

clear

从工作区中删除项目、释放系统内存

说明

clear 从当前工作区中删除所有变量,并将它们从系统内存中释放。

示例

clear name1 ... nameN 删除内存中的变量、脚本、函数或 MEX 函数 name1 ... nameN

示例

clear -regexp expr1 ... exprN 删除与列出的任何正则表达式匹配的所有变量。此选项仅删除变量。

示例

clear ItemType 删除 ItemType 指示的项目类型,例如 allfunctionsclasses

示例

全部折叠

定义两个变量 ab,然后清除 a

a = 1;
b = 2;
clear a

仅变量 b 保留在工作区中。

whos
  Name      Size            Bytes  Class     Attributes

  b         1x1                 8  double              

使用正则表达式,清除其名称以 MonTueWed 开头的这些变量。

clear -regexp ^Mon ^Tue ^Wed;

创建一个包含要清除的变量的名称的元胞数组 vars。然后,清除这些变量。

vars = {'v1','v2','time'};
clear(vars{:})

如果函数被锁定或当前正在运行,则它不会从内存中清除。

clear functions

输入参数

全部折叠

要清除的变量、脚本、函数或 MEX 函数的名称,指定为一个或多个字符向量或字符串标量。

如果 name 是:

  • 函数,则 clear 重新初始化函数中的任何持久变量。不支持指定局部或嵌套函数。

  • 当前正在执行的脚本或函数或者由 mlock 锁定的函数,则 clear 不会将其删除。

  • 全局变量,则 clear 会将其从当前工作区中删除,但它仍保留在全局工作区中。要从所有工作区中删除全局变量,请使用 clear global variable

使用部分路径区分不同重载版本的函数。

用于匹配要清除的变量名称的正则表达式,指定为一个或多个字符向量或字符串标量。

要清除的项目的类型,指定为下列值之一。

ItemType 的值清除的项注释
范围中的变量脚本和函数类定义持久变量MEX 函数全局变量导入列表动态路径上的 Java 类

all

 仅从命令提示符 

调用 clear all 会降低代码性能,且通常没有必要。有关详细信息,请参阅提示部分。

classes

 

调用 clear classes 会降低代码性能,且通常没有必要。有关详细信息,请参阅提示部分。

要使用更新后的类定义实例化对象,不需要调用 clear classes。如果您修改类定义,MATLAB® 会自动更新它。有关详细信息,请参阅Automatic Updates for Modified Classes

如果任何一类对象在清空工作区之后仍存在,clear classes 将发出警告而不清除这些对象。例如,对象仍可以存在于函数或图窗窗口的持久变量中。

如果使用 mlock 命令锁定了类文件,clear classes 将不清除该类。在这种情况下,将不发出警告。

functions

     

调用 clear functions 会降低代码性能,且通常没有必要。有关详细信息,请参阅提示部分。

global

       

clear global 删除当前工作区和全局工作区中的所有全局变量。例如,当从函数调用时,clear global 会删除函数和全局工作区中的所有全局变量,但不会删除基础工作区中的所有全局变量。

import

       

仅从命令提示符调用 clear import。在函数或脚本中调用 clear import 将返回错误。

java

  

如果 Java 类的任何 Java 对象存在于工作区外部(例如存在于锁定的代码文件的用户数据或持久变量中),clear java 将发出警告而不删除该 Java 类定义。

在修改动态 Java 类路径中的任何文件之后发出 clear java 命令。

mex

       

clear mex 不清除锁定的 MEX 函数或当前正在使用的函数。

variables

        

注意

如果变量的名称为 ItemType 的值,则调用 clear 并后跟该名称会删除具有该名称的变量。clear 不会将名称解释为此上下文中的关键字。例如,如果工作区包含变量 aallbballclear all 仅删除变量 all

提示

  • 调用 clear allclear classesclear functions 会降低代码性能,且通常没有必要。

    • 要从当前工作区中清除一个或多个特定变量,请使用 clear name1 ... nameN

    • 要清除当前工作区中的所有变量,请使用 clearclearvars

    • 要清除所有全局变量,请使用 clear globalclearvars –global

    • 要清除特定类,请使用 clear myClass

    • 要清除特定函数或脚本,请使用 clear functionName

    • 要清除所有 MEX 函数,请使用 clear mex

  • clear 函数可以删除您指定的变量。要删除除几个指定变量之外的所有变量,请改用 clearvars

  • 如果您清除图窗或图形对象的句柄,该对象自身将不会删除。可使用 delete 删除对象。另一方面,删除对象并不会删除用于存储其句柄的变量(如果有)。

  • clear 函数不会清除 Simulink® 模型。请改用 bdclose

  • clear 函数不会清除局部函数或嵌套函数中的持久变量。

  • 在 UNIX® 系统中,clear 不会影响分配给 MATLAB 进程的内存量。

扩展功能

版本历史记录

在 R2006a 之前推出