MATLAB® сохраняет все числовые значения как числа с плавающей точкой двойной точности по умолчанию. Напротив, Python® по умолчанию сохраняет некоторые числа в виде целых чисел. Из-за этого различия вы можете передать целые числа в качестве входных параметров в функции MATLAB, которые ожидают чисел двойной точности.
Примите во внимание следующие переменные назначения в MATLAB:
x = 4; y = 4.0;
Оба x и y имеют тип данных double. Теперь рассмотрим те же задания в Python:
x = 4 y = 4.0
x и y имеют различные типы числовых данных.
print(type(x))
<type 'int'>
print(type(y))
<type 'float'>
Большинство функций MATLAB берут числовые входные параметры типа данных double. Лучшая практика состоит в том, чтобы убедиться, что числа, которые вы передаете в качестве входных параметров в функции MATLAB, имеют тип данных Python float, не тип данных Python int. Вы можете убедиться, что переменные Python являются числами с плавающей точкой, если вы:
Делайте литералы числами с плавающей точкой. Для примера введите 4.0 вместо 4.
Преобразуйте в тип данных float. Для примера, x = float(4) приводит число к типу данных float.
Создайте matlab.double массив из числа или последовательности. Для примера, x = matlab.double([1,2,3,4,5]) создает массив типа данных MATLAB double из list целых чисел Python.
Когда вы передаете целое число в функцию MATLAB, которая принимает входной параметр типа данных doubleмеханизм вызывает ошибку. См. пример в MatlabExecutionError: Undefined Function.
Когда вы вызываете функцию MATLAB, которая принимает целые числа в качестве числовых входных параметров, можно передать входные аргументы типа данных Python int в функцию.