Числовые типы по умолчанию в MATLAB и Python

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