0

I have m file (main.m), and I have some variables that I have in this file.

In the end of the file, I wrote: clear all

I want to clear all the variables. so in the Matlab, I wrote: main, in order to run the function.

When the function completes, I wrote in MATLAB console the name of one of the variables of main.m.

For example, I wrote the variable: data

Surprisingly, the variable exists.

Why the expression clear all doesn't delete it?

Thank you.

4

1 回答 1

4

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

这意味着您不能清除函数内的工作区变量,至少不能通过 using清除clear all,因为在函数内部clear all只会清除其变量范围内的所有变量。

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

于 2012-05-31T19:15:12.143 回答