Генерация эффективного кода C/C++ из кода MATLAB® иногда приводит к различиям в поведении между сгенерированным кодом и кодом MATLAB. Когда вы запускаете свою программу, проверки ошибки времени выполнения могут обнаружить некоторые из этих различий. Чтобы помочь вам идентифицировать и обратиться к различиям прежде чем, вы развертываете код, генератор кода сообщает о подмножестве различий как potential differences. Разность потенциалов является различием, которое происходит во время выполнения только при определенных обстоятельствах.
Если генератор кода обнаруживает разность потенциалов, он отображает сообщение для различия на вкладке Potential Differences отчета. Чтобы подсветить код MATLAB, который соответствует сообщению, кликните по сообщению.
Присутствие сообщения разности потенциалов не обязательно означает, что различие произойдет, когда вы запустите сгенерированный код. Чтобы определить, влияет ли разность потенциалов на ваше приложение:
Анализируйте поведение своего кода MATLAB для области значений данных для вашего приложения.
Протестируйте MEX-функцию, сгенерированную из вашего кода MATLAB. Используйте область значений данных, которые использует ваше приложение. Если различие происходит, MEX-функция сообщает об ошибке.
Если ваш анализ или тестирование подтверждают различие, о котором сообщают, рассмотрите изменение вашего кода. Некоторые сообщения разностей потенциалов обеспечивают обходное решение. Для получения дополнительной информации о некоторых сообщениях разностей потенциалов см. сообщения Разностей потенциалов. Даже если вы изменяете свой код, чтобы препятствовать тому, чтобы различие произошло во время выполнения, генератор кода может все еще сообщить о разности потенциалов.
Набор разностей потенциалов, которые обнаруживает генератор кода, является подмножеством различий, о которых MEX-функции сообщают как ошибки. Это - лучшая практика протестировать MEX-функцию по полному спектру данных приложения.
По умолчанию создание отчетов разностей потенциалов включено для ускорения кода с fiaccel
. Чтобы отключить его, в ускоряющем объекте настройки кода, устанавливают ReportPotentialDifferences
на false
.