Выполните выражение MATLAB в заданной рабочей области
evalin(ws,
expression
)
[a1, a2, a3, ...] = evalin(ws, expression
)
evalin(ws,
выполняет expression
)expression
, вектор символов или скаляр строки, содержащий любые допустимые переменные использования выражения MATLAB® в рабочей области ws
. ws
может иметь значение 'base'
или 'caller'
, чтобы обозначить базовое рабочее пространство MATLAB или рабочую область функции вызывающей стороны.
[a1, a2, a3, ...] = evalin(ws,
выполняет expression
)expression
и возвращает результаты в заданных выходных переменных. Используя evalin
список выходных аргументов рекомендуется по включению выходных аргументов в выражении:
evalin(ws,'[a1, a2, a3, ...] = function(var)')
Вышеупомянутый синтаксис избегает строгой проверки синтаксическим анализатором MATLAB и может произвести незахваченные ошибки и другое неожиданное поведение.
Этот пример извлекает значение переменной var
в базовом рабочем пространстве MATLAB и получает значение в локальной переменной v
:
v = evalin('base', 'var');
evalin
не может использоваться рекурсивно, чтобы выполнить выражение. Например, последовательность формы evalin('caller', 'evalin(''caller'', ''x'')')
не работает.
Базовое рабочее пространство MATLAB является рабочей областью, которая замечена по командной строке MATLAB (если не в отладчике). Рабочая область вызывающей стороны является рабочей областью функции, которая вызвала в настоящее время рабочую функцию. Обратите внимание на то, что основа и рабочие области вызывающей стороны эквивалентны в контексте функции, которая вызывается из командной строки MATLAB.
evalin('caller', expression)
находит только переменные в рабочей области вызывающей стороны; это не ищет функции в вызывающей стороне. Поэтому вы не можете использовать evalin
, чтобы создать указатель на функцию, которая задана в вызывающей стороне.
Если вы используете evalin('caller', expression)
в отладчике MATLAB, изменив ваш локальный контекст рабочей области с dbup
или dbdown
, MATLAB выполняет выражение в контексте функции, которая является, каждый выравнивает в стеке от вашего текущего контекста рабочей области.