matlab清除一切都行不通

时间:2012-05-31 18:58:55

标签: matlab clear

我有m文件(main.m),我在这个文件中有一些变量。

在文件的最后,我写道:clear all

我想清除所有变量。所以在Matlab中,我写了:main,以便运行该函数。

当函数完成时,我在MATLAB控制台中写了一个main.m变量的名称。

例如,我写了变量:data

令人惊讶的是,变量存在。

为什么表达式clear all不会删除它?

谢谢。

1 个答案:

答案 0 :(得分:4)

函数有自己的变量范围。从函数返回时,函数的所有局部变量都将被清除,并且函数调用之前存在的变量和值将被恢复,唯一的区别是刚刚返回的函数的返回值。您可以使用MATLAB调试器轻松地执行此过程,首先确保在第一个函数中定义了一些变量,然后再进入第二个函数(至少在Linux版本中为F11),然后逐步执行第二个函数,最后逐步执行到达return或函数结束时的第二个函数,您将看到第二个函数的局部变量被清除,第一个函数的变量被恢复。

这意味着您无法清除函数内的工作空间变量,至少不能使用clear all,因为在函数clear all内只清除其变量范围内的所有变量。

如果您遵循函数式编程范例,通常您不必担心工作区变量,因为所有重要的是您在自己的函数中创建和修改的变量。