Вычислите выражение 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)