Когда матрица комплексных чисел представлена в памяти компьютера, существует несколько вариантов для местоположения и порядка устройства хранения данных. Перед MATLAB® Version 9.4 (R2018a) MATLAB использовал представление устройства хранения данных separate. Действительное и мнимые части чисел хранились отдельно. MATLAB использует представление устройства хранения данных interleaved для файлов MEX языка C и Фортрана, где действительные и мнимые части хранятся вместе. Interleaved complex относится к этому представлению.
Поскольку многие математические библиотеки используют чередованное комплексное представление, использование того же представления в ваших MEX-функциях избавляет от необходимости переводить данные. Это упрощает ваш код и потенциально ускоряет обработку, когда большие наборы данных включены.
Это изменение не влияет на язык MATLAB. Можно продолжить использовать функциональность, описанную в Комплексных числах без любой модификации функций и скриптов.
Существует две версии Матричного API C и Матричного API Фортрана.
separate complex API содержит Матричную функциональность API C и Фортрана в MATLAB R2017b и ранее.
interleaved complex API содержит Матричную функциональность API C с MATLAB R2018a и Матричную функциональность API Фортрана с Обновления MATLAB R2018a 3.
Чтобы создать файлы MEX с чередованным комплексным API, используйте
release-specific build option mex
-R2018a
. Чтобы создать файлы MEX с отдельным комплексным API, используйте опцию сборки -R2017b
. Команда mex
использует отдельный комплексный API по умолчанию. Однако в будущей версии MATLAB, mex
будет использовать чередованный комплексный API (опция -R2018a
) по умолчанию, и затем необходимо изменить команду сборки. Поэтому, чтобы гарантировать желаемое поведение через версии MATLAB, добавьте опцию -R2017b
в свои существующие скрипты сборки. Чтобы записать код, чтобы поддержать оба API, смотрите, Добавляют MX_HAS_INTERLEAVED_COMPLEX, чтобы Поддержать Оба Представления Комплексного числа.
Запускать файл MEX Фортрана создало с чередованным комплексным API в MATLAB R2018a, необходимо использовать Обновление MATLAB R2018a 3.
Следующие изменения в Матричной поддержке API C и Фортрана чередованный комплекс.
Новые введенные функции доступа к данным. Для получения дополнительной информации смотрите Введенный Доступ к данным.
Матричные API-функции добавляются к API -R2018a
:
Матричные API-функции, не поддержанные в API -R2018a
:
Поведение этих Матричных API-функций изменяется в API -R2018a
. Кроме того, эти функции должны быть постепенно сокращены.
Поведение этих Матричных API-функций изменяется в API -R2018a
:
Поведение этих Матричных API-функций Фортрана изменяется в API -R2018a
:
Чтобы изучить, как записать MEX-функции с помощью чередованного комплексного API, смотрите, Обрабатывают Комплексные данные в приложениях C или Обрабатывают Комплекс Данные Фортрана.
Если вы уже создаете MEX-функции, S-функции MEX, или автономный движок MATLAB и приложения MAT-файла, то необходимо ли рассмотреть меня Потребность Обновить Мои файлы MEX, чтобы Использовать Чередованный Комплексный API? тема. Чтобы помочь перейти ваши файлы MEX и S-функции к чередованному комплексному API, MATLAB поддерживает интерфейс совместимости. Чтобы создать файлы MEX с интерфейсом совместимости, используйте
флаг mex
-R2017b
. Если ваши комплексные числа процессов кода, вы можете заметить влияние производительности, когда MATLAB адаптирует ваши данные к чередованному сложному формату.
Команда mex
использует API -R2017b
по умолчанию. Однако в будущей версии MATLAB, mex
будет использовать чередованный комплексный API -R2018a
по умолчанию, и затем необходимо изменить команду сборки. Поэтому, чтобы гарантировать желаемое поведение через версии MATLAB, добавьте флаг -R2017b
совместимости в свои скрипты сборки.