evalin

Выполните выражение 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 оценивает выражение в контексте функции, которая является, каждый выравнивает в стеке от вашего текущего контекста рабочей области.

Смотрите также

| | | |

Представлено до R2006a

Была ли эта тема полезной?