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
к функции.