来自MATLAB docs,完整声明:
eval语句中的代码可能会意外地创建或分配给当前工作区中已有的变量,从而破坏现有数据。
什么是例子?
如果我定义function fn(); a=1
并调用evalc('fn()')
,a
会不会突然出现在fn
之外的变量作用域中?示例here(试图找出-1)。
来自MATLAB docs,完整声明:
eval语句中的代码可能会意外地创建或分配给当前工作区中已有的变量,从而破坏现有数据。
什么是例子?
如果我定义function fn(); a=1
并调用evalc('fn()')
,a
会不会突然出现在fn
之外的变量作用域中?示例here(试图找出-1)。
1条答案
按热度按时间mzmfm0qo1#
我认为文档中的问题是:
在这种情况下,很明显
a
将被覆盖,但很容易想象更有害的情况,结果可能不那么清楚。evalin
可能会让事情变得更糟。