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