Объединение целых чисел и чисел двойной точности

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