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

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

Была ли эта тема полезной?