Числовые типы по умолчанию в 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 к функции.

Была ли эта тема полезной?