exponenta event banner

оценка

Вычислить выражение MATLAB

Описание

пример

eval(expression) оценивает код MATLAB ® вexpression.

Примечание

Вопросы безопасности: при звонке eval с ненадежным пользовательским вводом проверьте ввод, чтобы избежать непредвиденного выполнения кода. Примерами ненадежного пользовательского ввода являются данные, поступающие от пользователя, которого вы можете не знать, или от источника, которым вы не можете управлять. Если вам нужно решить эту проблему, рассмотрите следующие подходы:

  • Проверка входных данных для eval. Во-первых, поиск разрешенных операций. Затем, если вы найдете другие операции, запретить выполнение.

  • Заменить eval с альтернативой. Дополнительные сведения см. в разделе Альтернативы функции оценки.

Рекомендации по производительности: в большинстве случаев использование eval функция также менее эффективна, чем использование других функций MATLAB и языковых конструкций, и полученный код может быть более трудным для чтения и отладки. Рассмотрите возможность использования альтернативы eval.

пример

[output1,...,outputN] = eval(expression) возвращает выходные данные из expression в указанных переменных.

Примеры

свернуть все

Использовать eval для вычисления и построения графика выражения magic(5).

Z = eval('magic(5)');
mesh(Z)

Входные аргументы

свернуть все

Выражение для вычисления, указанное как вектор символа или скаляр строки. expression должно быть допустимым выражением MATLAB и не должно включать никаких ключевых слов MATLAB. Чтобы определить, является ли слово ключевым словом MATLAB, используйте iskeyword функция.

Пример: eval('magic(5)')

Выходные аргументы

свернуть все

Выходные данные из вычисляемого выражения, возвращаемого как любой тип данных MATLAB.

Ограничения

  • Если вы используете eval внутри анонимной функции, вложенной функции или функции, которая содержит вложенную функцию, вычисляемый expression не создает переменные.

Совет

  • Чтобы позволить синтаксическому анализатору MATLAB выполнять более строгие проверки кода и избегать незафиксированных ошибок и других неожиданных действий, не включайте выходные аргументы во входные данные eval функция. Например, оператор eval(['output = ',expression]) не рекомендуется.

    Вместо этого укажите выходные аргументы для eval для хранения результатов вычисленного выражения. Например:

      output = eval(expression)

Вопросы совместимости

развернуть все

В R2021a изменилось поведение

Представлен до R2006a