Main Content

evalc

计算 MATLAB 表达式并捕获结果

说明

示例

results = evalc(expression) 计算 expression 表示的 MATLAB® 代码,并在 results 中捕获通常会写入命令行窗口的任何内容。

注意

安全注意事项:当使用不可信用户输入调用 evalc 时,请验证输入以避免意外的代码执行。例如,来自您可能不认识的用户的输入或您无法控制的来源的数据就属于不可信用户输入。如果您需要解决此问题,请考虑以下方法:

  • 验证 evalc 的输入。首先,搜索允许的操作。然后,如果发现其他操作,禁止执行。

  • 用替代项替换 evalc。有关详细信息,请参阅eval 函数的替代方法

性能方面的考虑:在大多数情况下,使用 evalc 函数的效率还低于使用其他 MATLAB 函数和语言构造的效率,生成的代码可能更难阅读和调试。考虑使用 evalc 的替代项。

[results,output1,...,outputN] = evalc(expression) 还会在指定的变量中返回 expression 的输出。

示例

全部折叠

使用 evalc 计算表达式 magic(5) 并存储结果。

results = evalc('magic(5)')
results =
    
    '
     ans =
     
         17    24     1     8    15
         23     5     7    14    16
          4     6    13    20    22
         10    12    19    21     3
         11    18    25     2     9
     
     '

输入参数

全部折叠

要计算的表达式,指定为字符向量或字符串标量。expression 必须为有效的 MATLAB 表达式,并且不能包含任何 MATLAB 关键字。要确定某词语是否为 MATLAB 关键字,请使用 iskeyword 函数。

示例: evalc('magic(5)')

输出参数

全部折叠

捕获的命令行窗口输出,以字符数组形式返回。捕获的输出中的各行由 \n 字符分隔。

计算的表达式的输出,以任何 MATLAB 数据类型形式返回。

局限性

  • 使用 evalc 时,函数 diarymoreinput 将被禁用。

  • 如果在匿名函数、嵌套函数或包含嵌套函数的函数中使用 evalc,则计算的 expression 不会创建任何变量。

提示

  • 为了让 MATLAB 解析器对您的代码执行更严格的检查并避免未捕捉到的错误和其他意外行为,请不要在 evalc 函数的输入中包含输出参数。例如,不推荐使用语句 result = evalc(['output = ',expression])

    在这种情况下,请为 evalc 函数指定输出参数,以存储计算的表达式的结果。例如:

      [result,output] = evalc(expression)

扩展功能

版本历史记录

在 R2006a 之前推出