evalin
在指定的工作区中计算 MATLAB 表达式
说明
evalin(
使用指定工作区中的变量计算 workspace
,expression
)expression
表示的 MATLAB® 代码。
注意
安全注意事项:当使用不可信用户输入调用 evalin
时,请验证输入以避免意外的代码执行。例如,来自您可能不认识的用户的输入或您无法控制的来源的数据就属于不可信用户输入。如果您需要解决此问题,请考虑以下方法:
验证
evalin
的输入。首先,搜索允许的操作。然后,如果发现其他操作,禁止执行。用替代项替换
evalin
。有关详细信息,请参阅eval 函数的替代方法。
性能方面的考虑:在大多数情况下,使用 evalin
函数的效率还低于使用其他 MATLAB 函数和语言构造的效率,生成的代码可能更难阅读和调试。考虑使用 evalin
的替代项。
[
在指定的变量中返回 output1,...,outputN
] = evalin(workspace
,expression
)expression
的输出。要使此语法有效,表达式
也必须有效。output1,...,outputN
= expression
示例
输入参数
输出参数
局限性
evalin('caller',expression)
只计算调用方工作区中的变量,它不计算调用方中的函数。因此,不能使用evalin
构造调用方中定义的函数句柄。evalin
不可递归用于计算表达式。例如,语句evalin('caller','evalin(''caller'',''x'')')
无效。如果在匿名函数、嵌套函数或包含嵌套函数的函数中使用
evalin
,则计算的expression
不会创建任何变量。
提示
为了让 MATLAB 解析器对您的代码执行更严格的检查并避免未捕捉到的错误和其他意外行为,请不要在
evalin
函数的输入中包含输出参数。例如,不推荐使用语句evalin('base',['output = ',expression])
。在这种情况下,请为
evalin
函数指定输出参数,以存储计算的表达式的结果。例如:output = evalin('base',expression)
版本历史记录
在 R2006a 之前推出