Когда матрица комплексных чисел представлена в памяти компьютера, существует несколько вариантов для местоположения и порядка устройства хранения данных. Перед 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, используйте mex
release-specific build option
-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 и Фортрана чередованный комплекс.
Новые введенные функции доступа к данным. Для получения дополнительной информации смотрите Введенный Доступ к данным в Файлах MEX на C.
Матричные API-функции добавляются к -R2018a
API:
Матричные API-функции, не поддержанные в -R2018a
API:
Поведение этих Матричных API-функций изменяется в -R2018a
API. Кроме того, эти функции должны быть постепенно сокращены.
Поведение этих Матричных API-функций изменяется в -R2018a
API:
Поведение этих Матричных API-функций Фортрана изменяется в -R2018a
API:
Чтобы изучить, как записать MEX-функции с помощью чередованного комплексного API, смотрите, Обрабатывают Комплексные данные в Файле MEX на C в приложениях C или Обрабатывают Комплекс Данные Фортрана.
Если вы уже создаете MEX-функции, S-функции MEX, или автономный движок MATLAB и приложения MAT-файла, то необходимо ли рассмотреть меня Потребность Обновить Мои файлы MEX, чтобы Использовать Чередованный Комплексный API? тема. Чтобы помочь перейти ваши файлы MEX и S-функции к чередованному комплексному API, MATLAB обеспечивает интерфейс совместимости. Чтобы создать файлы MEX с интерфейсом совместимости, используйте mex
-R2017b
флаг. Если ваши комплексные числа процессов кода, вы можете заметить удар эффективности, когда MATLAB адаптирует ваши данные к чередованному сложному формату.
mex
команда использует -R2017b
API по умолчанию. Однако в будущей версии MATLAB, mex
будет использовать чередованный комплексный API -R2018a
по умолчанию и затем необходимо изменить команду сборки. Поэтому, чтобы гарантировать желаемое поведение через версии MATLAB, добавьте флаг -R2017b
совместимости к вашим скриптам сборки.