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