Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Параметры условий и аргументы часто используются взаимозаменяемо. Строго говоря термин параметры означает имена объектов, которые вы задаете при определении процедуры. Средние значения аргументов термина возражают, что вы используете при вызове процедуры. Эта документация также использует термин формальные параметры для параметров и термина фактические параметры для аргументов.
Много языков программирования требуют, чтобы количество параметров было равно количеству аргументов. MuPAD® не имеет этого требования. Поэтому можно вызвать процедуру с количеством аргументов, отличающихся от количества заданных параметров. Если вы вызываете процедуру с помощью меньшего количества аргументов, чем параметры, система обрабатывает дополнительные параметры как дополнительные локальные переменные без заданных значений. Если вы вызываете процедуру с помощью большего количества аргументов, чем параметры, система не игнорирует эти дополнительные параметры, но позволяет вам получить доступ к ним.
args
функция позволяет вам получить доступ к аргументам текущего вызова процедуры. Вызов args(i)
, где i
положительное целое число, возвращает i
аргумент th текущего вызова процедуры. Вызов args(0)
возвращает общее количество аргументов в текущем вызове процедуры. Например, следующая процедура вычисляет сумму своих аргументов в каждом вызове процедуры:
f := proc() begin _plus(args(i) $ i = 1..args(0)): end_proc:
Процедура работает на любое количество аргументов:
f(), f(100), f(1, 2, 3, 4, 5), f(a, b, c), f(x $ x = 1..1000)
Кроме того, можно получить доступ к целой последовательности аргументов или любой подпоследовательности той последовательности. Например, следующая процедура распечатывает все аргументы, используемые в текущем вызове. Если текущий вызов использует три или больше аргумента, процедура также распечатывает свои первые три аргумента:
g := proc() begin print(Unquoted, "all arguments" = args()): if args(0) > 2 then print(Unquoted, "first three arguments" = args(1..3)): else print(Unquoted, "not enough arguments"): end_if end_proc:
Вызовите процедуру g
с пятью аргументами:
g(10, 20, 30, 40, 50)
all arguments = (10, 20, 30, 40, 50)
first three arguments = (10, 20, 30)
Когда вы передаете аргументы процедуре, MuPAD оценивает эти аргументы. Затем система создает локальную переменную для каждого формального параметра, заданного в определении процедуры. Система присваивает оцененные аргументы этим локальным переменным. Параметры вне процедуры не изменяются. Например, присвойте новое значение формальному параметру в процедуре:
h := proc(a) begin a := b; print(args()): end_proc:
Присвоение нового значения к формальному параметру в процедуре не влияет на сам параметр. Это присвоение влияет на результат, возвращенный args
. Например, если вы передаете какой-либо аргумент процедуре h
, тот аргумент превращается в переменную b
в процедуре:
h(100)
Формальный параметр a
не изменяет его значение вне процедуры:
a
Для дальнейших расчетов удалите процедуры f
G
, и h
:
delete f, g, h