Когда матрица комплексных чисел представлена в памяти компьютера, существует несколько выбора для местоположения и порядка устройства хранения данных. Перед MATLAB® Version 9.4 (R2018a) MATLAB использовал представление отдельной системы хранения. Действительное и мнимые части чисел были сохранены отдельно. MATLAB использует представление хранения с чередованием для файлов MEX языка C и Фортрана, где действительные и мнимые части сохранены вместе. Чередованный комплекс относится к этому представлению.
Поскольку многие математические библиотеки используют чередованное комплексное представление, использование того же представления в ваших MEX-функциях избавляет от необходимости переводить данные. Это упрощает ваш код и потенциально ускоряет обработку, когда большие наборы данных включаются.
Это изменение не влияет на язык MATLAB. Можно продолжить использовать функциональность, описанную в Комплексных числах без любой модификации функций и скриптов.
Существует две версии Матричного API C и Матричного API Фортрана.
Отдельный комплексный API содержит Матричную функциональность API C и Фортрана в MATLAB R2017b и ранее.
Чередованный комплексный API содержит Матричную функциональность API C с MATLAB R2018a и Матричную функциональность API Фортрана с Обновления MATLAB R2018a 3.
Чтобы создать файлы MEX с чередованным комплексным API, используйте 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
совместимости к своим скриптам сборки.