MATLAB® хранит все числовые значения как числа плавающей точки двойной точности по умолчанию. In contrast, 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: Неопределенная Функция для примера.
Когда вы вызываете функцию MATLAB, которая действительно берет целые числа в качестве числовых входных параметров, можно передать входные параметры типа данных Python int к функции.