Отобразите прогресс

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

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

По умолчанию процедуры MuPAD® не показывают информацию о прогрессе или комментарии о времени выполнения. Например, создайте следующую процедуру, которая возвращает знак входного номера. (MuPAD предоставляет стандартной функции sign для этой задачи.)

S := proc(z:Type::Numeric)
begin
  if not(testtype(z, Dom::Real)) then
    z/abs(z)
  elif z > 0 then
    1
  elif z < 0 then
    -1
  else
    0
  end_if
end_proc:

Когда вы выполняете эту процедуру, она возвращает только конечный результат:

S(10)

Как правило, конечный результат - все, что ваши пользователи хотят видеть. Однако, если выполнение процедуры занимает много времени или если пользователи могут извлечь выгоду из комментариев к некоторым шагам процедуры, можно расширить процедуру, чтобы включать дополнительную информацию. Чтобы встроить информацию о прогрессе в вашу процедуру, используйте функцию print. Например, измените процедуру S, таким образом, это сообщает о своем прогрессе:

S := proc(z:Type::Numeric)
begin
  print(Unquoted, "Is ".expr2text(z)." a real number?");
  if not(testtype(z, Dom::Real)) then
    print(Unquoted, expr2text(z)." is a complex number. Computing...
                            the sign of ".expr2text(z)." as z/|z|");
    z/abs(z);
  else
    print(Unquoted, expr2text(z)." is a real number");
    print(Unquoted, "Is ".expr2text(z)." a positive number?");
    if z > 0 then
      print(Unquoted, expr2text(z)." is a positive number");
      1
    else
      print(Unquoted, expr2text(z)." is not a positive number");
      print(Unquoted, "Is ".expr2text(z)." a negative number?");
      if z < 0 then
        print(Unquoted, expr2text(z)." is a negative number");
        -1
      else
        print(Unquoted, expr2text(z)." is not a negative number");
        print(Unquoted, expr2text(z)." is zero.");
        0
     end_if
    end_if
  end_if
end_proc:

Теперь процедура S отображает сообщения о состоянии:

S(0)
Is 0 a real number?
0 is a real number
Is 0 a positive number?
0 is not a positive number
Is 0 a negative number?
0 is not a negative number
0 is zero.