unfreeze

Создайте активную копию замороженной функции

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

unfreeze(object)

Описание

unfreeze(object) повторно активирует все неактивные функции, происходящие в object, продолжая рекурсивно вдоль структуры object, и затем оценивает результат.

unfreeze использует misc::maprec, чтобы продолжить рекурсивно вдоль структуры object. Это означает, что для основных областей, таких как массивы, таблицы, списки или полиномы, функциональный unfreeze применяется к каждому операнду object.

Если object является элементом области библиотеки, то поведение unfreeze задано методом maprec, который перегружает функциональный misc::maprec. Если этот метод не существует, то unfreeze не имеет никакого эффекта на object. Смотрите Пример 2.

unfreeze не работает с телом процедур. Поэтому рекомендуется не встроить неактивные функции в процедурах.

Примеры

Пример 1

Создайте неактивную форму функциональной среды int:

_int := freeze(int): F := _int(x*exp(x^2), x = 0..1)

Неактивная форма int хранит каждую информацию, которая известна о функциональном int, например, выводе, типе и слоте "float" для оценки с плавающей точкой:

F, type(F), float(F)

Исходная функциональная среда int не изменяется freeze:

int(x*exp(x^2), x = 0..1)

Используйте unfreeze, чтобы повторно активировать неактивный функциональный _int и оценить результат:

unfreeze(F), unfreeze(F + 1/2)

Пример 2

Функциональный unfreeze использует misc::maprec, чтобы действовать рекурсивно вдоль структуры object. Например, если object является массивом, содержащим неактивные функции, такие как:

a := array(1..2, 
  [freeze(int)(sin(x), x = 0..2*PI), freeze(sum)(k^2, k = 1..n)]
)

затем unfreeze(a) работает с операндами a:

unfreeze(a)

Это означает, что для областей библиотеки, эффект unfreeze задан методом maprec. Если область не реализует этот метод, то unfreeze не работает с объектами этой области. Например, создайте область и объект, содержащий неактивную функцию как ее операнд:

dummy := newDomain("dummy"):
o := new(dummy, freeze(int)(sin(x), x = 0..2*PI))

Функциональный unfreeze применился к объекту o, не имеет никакого эффекта:

unfreeze(o)

Если вы перегружаете функциональный misc::maprec в порядке работать с первым операндом объектов доменного dummy, то unfreeze работает с o как ожидалось:

dummy::maprec := 
  x -> extsubsop(x,
    1 = misc::maprec(extop(x,1), args(2..args(0)))
  ):
unfreeze(o)

Параметры

object

Любой объект MuPAD®

Возвращаемые значения

Оцененная версия object после повторной активации всех неактивных функций в нем.

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

Функции MuPAD