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

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

Для просмотра документации необходимо авторизоваться на сайте