主要内容

基础和函数工作区

当您首次在 MATLAB® 中开始工作时,您通常与基础工作区交互。当您定义自己的函数或类并使用调试器分析代码时,您可能会与函数工作区交互。本主题描述各工作区之间的差异以及如何识别当前处于活动状态的工作区。

什么是基础工作区?

基础工作区通常包含通过在命令行中和脚本中运行代码创建的变量。例如,在命令行中为 X 赋值会在基础工作区中创建或更新 X

X = rand(10);

The Workspace panel shows four columns: Name, Value, Size, and Class. The name of the variable is X, and its value is 10-by-10 double.

在您清除内存中基础工作区中的变量或结束您的 MATLAB 会话之前,这些变量一直存在。

函数工作区

函数内的代码不使用基础工作区。每个函数都有自己的函数工作区。每个函数工作区都与基础工作区和所有其他工作区分开以保护数据的完整性。即使普通文件中的局部函数也有它们自己的工作区。在函数内部创建的变量属于该函数的工作区,并且仅在该函数内部可用。

例如,假设您在文件中定义一个函数。在此示例中,areaCircle 函数接受名为 R 的输入,创建一个局部变量 rSquared,然后返回名为 A 的输出。

在编辑器中设置断点会在调用该函数时暂停执行,从而允许您与函数工作区交互。在调试时,您可以使用编辑器和调试器中的选项在当前堆栈中的工作区之间切换,包括基础工作区。

When the desktop is in debugging mode, the name of the function workspace appears at the top of both the Workspace panel and the Editor. The Debugger panel includes a section named Function call stack below the section named Breakpoints.

areaCircle 结束执行时,基础工作区包含 myAreaXARrSquared 变量是 areaCircle 的局部变量,它们不在基础工作区中。

The Workspace panel shows two variables, myArea and X.

脚本没有自己的工作区。从函数中调用脚本时,脚本使用函数工作区。否则,脚本使用基础工作区。

嵌套函数

和局部函数一样,嵌套函数也有它们自己的工作区。然而,有两个显著区别:

  • 父函数工作区中的变量在嵌套函数中也可用。

  • 嵌套函数及其父函数中的所有变量必须显式定义。即,除非变量已存在于函数工作区中,否则无法调用函数或脚本向那些变量赋值。

有关详细信息,请参阅嵌套函数

另请参阅

主题