MATLAB® поддерживает комбинацию целых чисел одного и того же класса и скалярных чисел двойной точности. MATLAB не поддерживает комбинацию целых чисел и чисел с одной точностью. Если вы используете приложение MATLAB Coder™ или codegen
с -singleC
опция для генерации кода C/C + + с одной точностью, ваш код MATLAB не может объединить целые числа и числа двойной точности. Преобразование выражения, которое объединяет целые числа и удваивает, приводит к незаконному выражению MATLAB. Чтобы обойти это ограничение, приведите числа так, чтобы типы чисел совпадали. Приведите целочисленные числа к двойной точности или приведите числа двойной точности к целому классу.
Для примера рассмотрим функцию dut
который возвращает сумму a
и b
.
function c = dut(a,b) c = a + b; end
Сгенерируйте код с одной точностью, используя codegen
с -singleC
опция. Укажите, что первый аргумент является двойным, а второй аргумент - int32.
codegen -singleC -config:lib dut -args {0, int32(2)} -report
Не удалось сгенерировать код. Сообщение предполагает, что вы приводите операнды так, чтобы они имели одинаковые типы.
Перепишите код так, чтобы он a
к типу b
.
function c = dut(a,b) c = int32(a) + b; end