blockTransparentСоздайте прозрачный блок, защищенный от оценки
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
blockTransparent(a)
blockTransparent(a) создает прозрачный блок, который оставлен без изменений оценкой, но обработан как выражение с теми же операндами как a.
blockTransparent является областью. Если d является какой-либо областью блока, d(a) создает блок, принадлежащий той области с содержимым a.
blockTransparent(a) помещает свой аргумент в блок, не оценивая его. В порядке оценить a обычно прежде, чем поместить его в блок некоторого вида, используйте eval(hold(blockTransparent)(a)).
Прозрачные блоки являются инвариантными при оценке, но такие блоки имеют те же операнды как свое содержимое.
Последовательности могут также быть помещены в блок. В случае blockTransparent они не сглажены. Смотрите Пример 2.
Вызов expr (b) заменяет все прозрачные блоки в b их содержимым, не оценивая то содержимое. Таким образом expr(blockTransparent(a)) подобен hold(a).
В случае вложенных блоков только наиболее удаленный блок удален и expr и unblock.
Блок, включая прозрачные блоки, является своего рода контейнером, который защищает его содержимое от оценки:
y := 2: bl := blockTransparent(x + y + z)
![]()
Прозрачный блок предоставляет доступ к операндам его содержимого:
op(bl,1), subs(bl, hold(y) = y)
![]()
delete bl, y
Блок может также содержать последовательность; выравнивание подавлено:
blockTransparent((x, y),z)
![]()
Содержимое блока может быть извлечено и оценило использование unblock:
bl := blockTransparent(x + y): [x, y] := [1, 2]: bl
![]()
unblock(bl)
![]()
delete y
|
Любой объект или последовательность объектов |
blockTransparent создает объекты своего собственного типа.