Диагностируйте ошибки перевода MuPAD в MATLAB

Эта страница помогает диагностировать ошибки, сгенерированные convertMuPADNotebook функция при преобразовании MuPAD® блокноты в MATLAB® live скрипты. Шаги преобразования см. в разделе Преобразование блокнотов MuPAD в Live скрипты MATLAB. Поиск и устранение проблем с предупреждениями см. в разделе Поиск и устранение проблем с MuPAD в MATLAB Translation Warnings.

Сообщение об ошибкеПодробнееРекомендации
В MATLAB нет эквивалентного кода.

convertMuPADNotebook не удается найти соответствующие функциональные возможности в MATLAB.

Отрегулируйте код так, чтобы он использовал только функциональность, которая может быть выражена на языке MATLAB. Кроме того, в целевой .mlx файл, некоторые функциональные возможности могут быть заменены функциями MATLAB, например, в статистике или file input-output.

Не удается перевести вторую и более высокую производные функций Эйри. Выразите эти производные с точки зрения функций Эйри и их первых производных.

MATLAB airy функция представляет функции Эйри первого и второго рода и их первые производные. В MuPAD, airyAi(z,n) и airyBi(z,n) может представлять вторые и более высокие производные функций Эйри, то есть n может быть больше 1.

Перепишите вторые и более высокие производные функций Эйри с точки зрения функций Эйри и их первых производных. Затем преобразуйте результат в код MATLAB.

Система MuPAD airyAi и airyBi функции возвращают результаты в терминах функций Эйри и их первых производных. Можно заменить вторые и более высокие производные их выходами в MuPAD, перед преобразованием кода в MATLAB.

Не удалось преобразовать назначение в переменную окружения MuPAD.

Переменные окружения являются глобальными переменными, такими как HISTORY, LEVEL, ORDERи так далее, которые влияют на поведение алгоритмов MuPAD.

В некоторых случаях можно использовать аргументы пары "имя-значение" в каждом вызове функции, например, установка значения Order в taylor вызов функции.

В других случаях соответствующая замена отсутствует. Отрегулируйте код так, чтобы он не требовал глобальной настройки.

Невозможно преобразовать назначения в таблицу запоминания процедуры.

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

Таблицы запоминания, созданные опцией remember или prog::remember недоступны в MATLAB.

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

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

В MuPAD, slot функция определяет методы и записи типов данных (доменов) или для определения атрибутов окружений (тип области DOM_FUNC_ENV). Эти методы и записи (пазы) позволяют вам перегрузить системные функции своими собственными областями и окружениями функций.

Области, окружения функций и их пазов недоступны в MATLAB.

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

Невозможно переместить явно заданный коэффициент звонка.

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

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

Не удается преобразовать complexInfinity.

MuPAD использует значение complexInfinity. Это значение недоступно в MATLAB.

Отрегулируйте код так, чтобы он не использовал complexInfinity.

Невозможно преобразовать код MuPAD, поскольку он использует устаревший синтаксис вызова.

Синтаксис MuPAD изменился, и в коде используется устаревший синтаксис, который больше не поддерживается.

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

Невозможно преобразовать вызов функции 'D' с несколькими аргументами.

Индексы в первом аргументе D невозможно преобразовать в имена переменных в MATLAB.

Используйте diff MuPAD функция вместо D.

Невозможно преобразовать области MuPAD или команды для создания областей или их элементов.

Области представляют типы данных в MuPAD. Они недоступны в MATLAB.

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

Не удалось преобразовать переменную окружения MuPAD «{0}».

Переменные окружения являются глобальными переменными, такими как HISTORY, LEVEL, ORDERи так далее, которые влияют на поведение алгоритмов MuPAD.

convertMuPADNotebook невозможно преобразовать переменные окружения MuPAD, поскольку они недоступны в MATLAB.

Настройте код так, чтобы он не требовал доступа к переменным окружения MuPAD.

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

В MuPAD вызов функции f(x), где x является последовательностью n operands, решает вызов с n аргументы.

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

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

Невозможно преобразовать бесконечные наборы.

MuPAD распознает бесконечные наборы. Для примера, solve функция в MuPAD может вернуть решение как бесконечное множество: solve(sin(x*PI/2) = 0, x) возвраты {2k|k}. Создать такие наборы можно при помощи Dom::ImageSet.

MATLAB не поддерживает бесконечные наборы.

Настройте код так, чтобы он не использовал бесконечные множества в качестве входов.

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

Система MuPAD last функция и ее ярлык % обычно позволяет вам получить доступ к последним 20 командам, хранящимся во внутренней таблице истории MuPAD.

В MATLAB, ans позволяет получить доступ только к одной последней команде.

Настройте код так, чтобы он использовал назначения вместо того, чтобы полагаться на last или %.

Не удалось преобразовать переменную «{0}», представляющую библиотеку MuPAD.

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

Настройте код так, чтобы он не использовал имена библиотек MuPAD в качестве идентификаторов.

Не удается сопоставить функцию с объектами этого класса.

Объекты этого класса не имеют эквивалентного представления в MATLAB. Преобразование отображения невозможно.

В целевой .mlx файл, реализуйте отображение путем записи цикла.

Невозможно преобразовать эту форму определения матрицы.

MuPAD предоставляет несколько различных подходов для создания матрицы. Можно создать матрицу из массива, списка элементов, вложенного списка строк или таблицы. Кроме того, можно создать матрицу, задав только ненулевые значения, такие как A[i1,j1] = value1, A[i2,j2] = value2и так далее.

Некоторые из этих подходов не могут быть переведены в код MATLAB.

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

Невозможно преобразовать деление относительно нескольких переменных.

Полиномиальное деление относительно нескольких переменных недоступно в MATLAB.

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

Не удалось преобразовать вложенное индексированное назначение.

Вложенное индексированное назначение недоступно в MATLAB.

Замените вложенное индексированное назначение несколькими назначениями.

Не удается создать полином из списка коэффициентов.

Невозможно переместить создание полинома из данного списка коэффициентов.

Сделайте первый аргумент для poly арифметическое выражение вместо списка.

Невозможно перевести нетривиальные процедуры.

Для кода, который вы хотите выполнять неоднократно, MuPAD позволяет вам создавать процедуры при помощи proc команда.

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

Более сложные процедуры не могут быть переведены в код MATLAB.

Отрегулируйте код так, чтобы он не использовал сложные процедуры.

Невозможно преобразовать глобальную таблицу свойств.

convertMuPADNotebook невозможно преобразовать глобальную таблицу свойств MuPAD, PROPERTIES, поскольку эта функциональность недоступна в MATLAB.

Установите допущения, как описано в Использование допущений для символьных переменных.

Не удается создать случайные генераторы с отдельными начальными значениями.

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

Отрегулируйте код так, чтобы он не полагался на отдельные начальные значения для различных генераторов случайных чисел.

Не удалось преобразовать конечный объект «{0}» для функции MATLAB «rewrite».

Система MuPAD rewrite функция может переписать выражение в терминах следующих целевых объектов: andor, arccos, arccosh, arccot, arccoth, arcsin, arcsinh, arctan, arctanh, arg, bernoulli, cos, cosh, cot, coth, diff, D, erf, erfc, erfi, exp, fact, gamma, harmonic, heaviside, inverf, inverfc, lambertW, ln, max, min, piecewise, psi, sign, sin, sincos, sinh, sinhcosh, tan, tanh.

MATLAB rewrite функция поддерживает меньше целей: explogsincossincostan, cotsqrt, heaviside, asin, acos, atan, acot, sinh, cosh, tanh, coth, sinhcosh, asinh, acosh, atanh, acoth, piecewise.

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

Не удается преобразовать пазов областей и функциональных окружений.

Пазы и области недоступны в MATLAB.

Отрегулируйте код так, чтобы он не использовал пазы или области.

Невозможно заменить только одно вхождение субэкспрессии.

Подстановка только одного вхождения субэкспрессии недоступна в MATLAB.

В целевой .mlx файл, разделите выражение с помощью функции children чтобы получить подэкспрессию, а затем заменить ее с помощью функции subs.

Синтаксическая ошибка в коде MuPAD.

Код MuPAD содержит синтаксическую ошибку, например, отсутствующую скобку.

Проверьте и исправьте код MuPAD, который вы переводите.

Тестовое окружение MuPAD не доступно в MATLAB.

Тестовое окружение MuPAD недоступно в MATLAB.

Настройте код так, чтобы он не использовал тестовое окружение MuPAD.

Неизвестная область или библиотека «{0}».

Скорее всего, используется пользовательская область или библиотека, которая не может быть переведена.

Проверьте и исправьте код MuPAD, который вы переводите.

Неизвестная функция MuPAD «{0}».

Функция недоступна в MuPAD.

Проверьте и исправьте код MuPAD, который вы переводите.

Не удается преобразовать вызовы в функцию «{0}».

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

Проверьте и исправьте код MuPAD, который вы переводите.

Не удалось преобразовать вызовы в функции библиотеки «{0}».

Функции этой библиотеки доступны в MuPAD, но соответствующих функций в MATLAB нет.

Отрегулируйте код так, чтобы он не использовал функции этой библиотеки.

Функция MuPAD «{0}» не может быть преобразована в указатель на функцию.

Функция MuPAD не имеет эквивалентного указателя на функцию в MATLAB.

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

Не удается преобразовать опцию «{0}».

Скорее всего, эта опция доступна в MuPAD, но соответствующих опций в MATLAB нет.

Отрегулируйте код так, чтобы он не использовал эту опцию.

Не удалось преобразовать код MuPAD, поскольку он использует недопустимый синтаксис вызова.

Скорее всего, вызов функции в коде MuPAD имеет ошибку.

Проверьте и исправьте код MuPAD, который вы переводите.