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

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