Зарезервированные имена переменных и имена функций

Примечание

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

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

И MATLAB и MuPAD имеют их собственные зарезервированные слова, такие как имена функций, специальные значения и имена математических констант. В MATLAB, если вы предоставляете выражение или уравнение как скаляр строки или вектор символов к какой-либо символьной функции кроме str2sym, и входной текст содержит зарезервированные слова как имена переменных или имена функций по крайней мере в одном интерфейсе, затем ошибка может закончиться. Если вы работаете в одном интерфейсе, и имя является зарезервированным словом в другом, то интерфейс вы работаете в продуктах сообщения об ошибке и предупреждающие сообщения. Эти сообщения могут задать причину проблемы неправильно.

Совет

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

В MuPAD защищены имена функций. Обычно, система не позволяет вам переопределить стандартную функцию или использует ее имя в качестве переменной. (Чтобы смочь изменить стандартную функцию MuPAD, необходимо сначала удалить ее защиту.), Даже когда вы работаете в Окне Команды MATLAB, механизм MuPAD обрабатывает символьные вычисления. Поэтому имена функций MuPAD являются зарезервированными словами в этом случае. Используя имя функции MuPAD при выполнении символьных вычислений в Окне Команды MATLAB может привести к ошибке. Например:

evalin(symengine,'solve(D - 10)')
Error using symengine
Invalid argument.

Error in mupadengine/evalin (line 132)
                res = mupadmex(statement,output_type{:});

Сообщение не указывает на действительную причину проблемы.

Чтобы устранить эту проблему, используйте функцию syms, чтобы объявить D как символьную переменную. Затем передайте уравнение символьному решателю как символьное выражение (то есть, не задавайте уравнение как скаляр строки или вектор символов).

syms D
solve(D - 10)
ans =
10

В этом случае программное обеспечение заменяет D на другое имя переменной прежде, чем передать выражение механизму MuPAD.

Также преобразуйте уравнение, которое задано как скаляр строки или вектор символов и содержит необъявленное, зарезервированное имя переменной к символьному выражению с помощью str2sym. Затем предоставьте выражение к solve. Например:

clear all
expsn = str2sym("D - 10");
solve(expsn)
ans =
10