Вычислить выражение MATLAB в указанной рабочей области
evalin( оценивает код MATLAB ®, представленный workspace,expression)expression с использованием переменных в указанной рабочей области.
Примечание
Вопросы безопасности: при звонке evalin с ненадежным пользовательским вводом проверьте ввод, чтобы избежать непредвиденного выполнения кода. Примерами ненадежного пользовательского ввода являются данные, поступающие от пользователя, которого вы можете не знать, или от источника, которым вы не можете управлять. Если вам нужно решить эту проблему, рассмотрите следующие подходы:
Проверка входных данных для evalin. Во-первых, поиск разрешенных операций. Затем, если вы найдете другие операции, запретить выполнение.
Заменить evalin с альтернативой. Дополнительные сведения см. в разделе Альтернативы функции оценки.
Рекомендации по производительности: в большинстве случаев использование 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)