Используйте свои собственные процедуры MuPAD

Примечание

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

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

Запишите процедуры MuPAD

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

Чтобы задать процедуру, используйте функцию proc. Заключите код в функции end_proc и begin:

myProc:= proc(n)
begin
   if n = 1 or n = 0 then
     1
   else
     n * myProc(n - 1)
   end_if;
end_proc:

По умолчанию процедура MuPAD возвращает результат последней выполняемой команды. Можно обеспечить процедуру, чтобы возвратить другой результат при помощи return. В обоих случаях процедура возвращает только один результат. Чтобы получить несколько результатов процедуры, объедините их в список или другую структуру данных, или используйте функцию print.

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

    myProcPrint:= proc(n)
    begin
       print(n);
       if n = 0 or n = 1 then
          return(1);
       end_if;
       n * myProcPrint(n - 1);
    end_proc:
  • Если вы хотите использовать несколько результатов процедуры, используйте упорядоченные структуры данных, такие как списки или матрицы как возвращаемые значения. В этом случае результатом последней выполняемой команды является технически один объект, но это может содержать больше чем одно значение. Например, эта процедура возвращает список двух записей:

    myProcSort:= proc(a, b)
    begin
      if a < b then
        [a, b]
      else
        [b, a]
      end_if;
    end_proc:

    Избегайте использования неупорядоченных структур данных, таких как последовательности и наборы, чтобы возвратить несколько результатов процедуры. Порядок записей в этих структурах может измениться непредсказуемо.

Когда вы сохраняете процедуру, рекомендуется использовать дополнительный .mu. Для получения дополнительной информации смотрите Файлы Notebook и Программные файлы. Имя файла может отличаться от имени процедуры. Кроме того, можно сохранить несколько процедур в одном файле.

Шаги, чтобы взять прежде, чем вызвать процедуру

Чтобы смочь вызвать процедуру, необходимо сначала выполнить код, задающий ту процедуру в блокноте. Если вы написали процедуру в том же блокноте, просто оцениваете входную область, которая содержит процедуру. Если вы написали процедуру в отдельном файле, необходимо считать файл в блокнот. Чтение файла означает находить его и выполнять команды в нем.

Считайте процедуры MuPAD

Если вы работаете в MuPAD Notebook и создаете отдельный программный файл, который содержит процедуру, используйте один из следующих методов, чтобы выполнить процедуру в блокноте. Первый подход должен выбрать Notebook> Read Commands из главного меню.

Также можно использовать функцию read. Вызов функции read(filename) ищет программный файл в этом порядке:

  1. Папки, заданные переменной окружения READPATH

  2. filename рассматривается как абсолютный путь

  3. Текущая папка (зависит от операционной системы),

Если вы хотите вызвать процедуру от Live Editor MATLAB, все еще необходимо выполнить ту процедуру прежде, чем вызвать ее. Смотрите Вызов Ваши Собственные Процедуры MuPAD.

Используйте команды запуска и скрипты

Также можно добавить процедуру MuPAD, чтобы запустить команды конкретного блокнота. Этот метод позволяет вам выполнить процедуру каждый раз, когда вы запускаете двигатель блокнота. Запуститесь команды выполняются тихо без любых видимых выходных параметров в блокноте. Можно скопировать процедуру в диалоговое окно, которое задает команды запуска, или присоедините процедуру как скрипт запуска. Для получения информации смотрите, Скрывают Строки кода.

Вызовите свои собственные процедуры MuPAD

Можно расширить функциональность, доступную в тулбоксе путем записи собственных процедур в языке MuPAD. Этот раздел объясняет, как вызвать такие процедуры в Окне Команды MATLAB.

Предположим, что вы записали процедуру myProc, которая вычисляет факториал неотрицательного целого числа.

Сохраните процедуру как файл с дополнительным .mu. Например, сохраните процедуру как myProcedure.mu в папке C:/MuPAD.

Возвратитесь к Окну Команды MATLAB. Прежде, чем вызвать процедуру в командной строке MATLAB, введите:

read(symengine, 'C:/MuPAD/myProcedure.mu')

Команда read читает и выполняет файл myProcedure.mu в MuPAD. После этого можно вызвать процедуру myProc с любым допустимым параметром. Например, вычислите факториал 15:

feval(symengine, 'myProc', 15)
ans =
1307674368000

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

В Окне Команды MATLAB используйте команду read, чтобы считать и выполнить reverted.mu.

read(symengine, 'C:/MuPAD/reverted.mu')

Теперь, используйте feval, чтобы вызвать процедуру reverted. Чтобы передать аргумент вектора символов процедуре, используйте двойные кавычки в одинарных кавычках.

feval(symengine, 'reverted', '"Abccba"')
ans =
1