evalin

Выполните выражение MATLAB в заданной рабочей области

Описание

пример

evalin(workspace,expression) оценивает код MATLAB®, представленный expression использование переменных в заданной рабочей области.

Примечание

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

  • Подтвердите входные параметры к evalin. Во-первых, ищите позволенные операции. Затем если вы находите другие операции, запрещаете выполнение.

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

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

пример

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

Примеры

свернуть все

Используйте evalin функция, чтобы получить значение переменной в базовом рабочем пространстве MATLAB и сохранить его в новой переменной.

Задайте var как матрица 5 на 5, возвращенная magic функция.

var = magic(5);

Получите значение переменной var в базовом рабочем пространстве MATLAB и хранилище это в переменной v.

v = evalin('base','var')
v =

    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

Входные параметры

свернуть все

Рабочая область, в которой можно выполнить выражение в виде 'base' или 'caller'.

Базовое рабочее пространство MATLAB является рабочей областью, которая замечена по командной строке MATLAB (если не в отладчике). Рабочая область вызывающей стороны является рабочей областью функции, которая вызвала в настоящее время рабочую функцию. Основа и рабочие области вызывающей стороны эквивалентны в контексте функции, которая вызывается из командной строки MATLAB.

Примечание

Если вы используете evalin('caller',expression) в отладчике MATLAB, изменив ваш локальный контекст рабочей области с dbup или dbdown, MATLAB выполняет выражение в контексте функции, которая является, каждый выравнивает в стеке от вашего текущего контекста рабочей области.

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

Пример: evalin('base','magic(5)')

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

свернуть все

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

Ограничения

  • evalin('caller',expression) находит только переменные в рабочей области вызывающей стороны; это не ищет функции в вызывающей стороне. Поэтому вы не можете использовать evalin создать указатель на функцию, которая задана в вызывающей стороне.

  • evalin не может использоваться рекурсивно, чтобы выполнить выражение. Например, оператор evalin('caller','evalin(''caller'',''x'')') недопустимо.

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

Советы

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

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

      output = evalin('base',expression)
Представлено до R2006a