Я должен обновить свои файлы MEX, чтобы использовать чередованный комплексный API?

Вы не должны обновлять свой исходный код MEX, чтобы продолжить создавать ваши файлы MEX. mex команда использует -R2017b API по умолчанию. Однако в будущей версии MATLAB®, mex будет использовать чередованный комплексный API -R2018a по умолчанию и затем необходимо изменить команду сборки. Поэтому, чтобы гарантировать желаемое поведение через версии MATLAB, добавьте флаг -R2017b совместимости к вашим скриптам сборки.

Я могу запустить существующие MEX-функции?

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

Я должен обновить свои исходные файлы MEX?

Состояние вашего исходного кодаСледующее действие
Мои MEX-функции не используют комплексные числа.

Проверяйте, что ваши функции правильно обрабатывают любой вход комплексных данных. Вызовы mxGetPr (C)/mxGetPr (Fortran) и mxGetData (C)/mxGetData (Fortran) не рекомендуются для комплексных массивов.

MathWorks рекомендует, чтобы вы обновили свой код, чтобы использовать MX_HAS_INTERLEAVED_COMPLEX макрос или сборка с помощью mex -R2017b опция, чтобы гарантировать желаемое поведение через версии MATLAB.

Если вы используете mxGetData или mxSetData, рассмотрите заменяющий их на введенные функции доступа к данным. Для получения дополнительной информации смотрите Используя чередованный комплексный API.

Я не планирую обновить свой код.

Если ваши MEX-функции используют комплексные числа, то вы приняли решение отказаться. MathWorks рекомендует, чтобы вы создали использование флага -R2017b совместимости.

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

Я хочу обновить свой код. Где я запускаю?

Чтобы обновить исходный код, смотрите файлы MEX Обновления, чтобы Использовать Чередованный Комплексный API.

Я использую комплексные числа в MEX-функциях, но не имею доступа к исходному коду.

Попросите, чтобы владелец исходного кода выполнил шаги в файлах MEX Обновления, чтобы Использовать Чередованный Комплексный API.

Я использую комплексные числа со сторонними библиотеками. Мой код MEX ответственен за преобразование представления MATLAB комплексных чисел к представлению библиотеки комплексных чисел.

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

В других случаях библиотеки имеют опции для представления комплексных чисел в памяти. Если это так, обратитесь к документации поставщика и выберите представление, которое наиболее тесно соответствует, MATLAB чередовал представление.

Моя MEX-функция генерирует ошибки.

Необходимо перекомпилировать файл MEX из исходного кода. При использовании -R2017b флаг не решает вопрос, затем в вашем исходном коде могут быть несовместимости. Для получения информации о несовместимостях смотрите, что я могу Запустить Существующие MEX-функции? MathWorks рекомендует, чтобы вы обновили свой исходный код MEX, чтобы использовать чередованный комплексный API.

Похожие темы