Выполните выражение MATLAB в заданной рабочей области
evalin(
оценивает код MATLAB®, представленный workspace
,expression
)expression
использование переменных в заданной рабочей области.
Примечание
Факторы безопасности: При вызове evalin
с недоверяемым вводом данных пользователем подтвердите вход, чтобы избежать неожиданного выполнения кода. Примерами недоверяемого ввода данных пользователем являются данные, прибывающие от пользователя, которого вы не можете знать, или из источника вы не имеете никакого контроля. Если необходимо обратиться к этому беспокойству, рассмотрите эти подходы:
Подтвердите входные параметры к evalin
. Во-первых, ищите позволенные операции. Затем если вы находите другие операции, запрещаете выполнение.
Замена evalin
с альтернативой. Для получения дополнительной информации см. Альтернативные варианты функции eval.
Факторы эффективности: В большинстве случаев, использование evalin
функция также менее эффективна, чем использование других функций MATLAB и построений языка, и получившийся код может больше затруднить в чтение и отладку. Рассмотрите использование альтернативы evalin
.
[
возвращает выходные параметры output1,...,outputN
] = evalin(workspace
,expression
)expression
в заданных переменных.
evalin('caller',expression)
находит только переменные в рабочей области вызывающей стороны; это не ищет функции в вызывающей стороне. Поэтому вы не можете использовать evalin
создать указатель на функцию, которая задана в вызывающей стороне.
evalin
не может использоваться рекурсивно, чтобы выполнить выражение. Например, оператор evalin('caller','evalin(''caller'',''x'')')
недопустимо.
Если вы используете evalin
в рамках анонимной функции, вложенной функции или функции, которая содержит вложенную функцию, оцененный expression
не создает переменных.
Чтобы позволить синтаксическому анализатору MATLAB выполнять более строгие проверки на вашем коде и избегать незахваченных ошибок и других неожиданных поведений, не включайте выходные аргументы во вход к evalin
функция. Например, оператор evalin('base',['output = ',expression])
не рекомендуется.
Вместо этого задайте выходные аргументы evalin
функционируйте, чтобы сохранить результаты выполненного выражения. Например:
output = evalin('base',expression)