exponenta event banner

Числовые типы по умолчанию в 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, двигатель вызывает ошибку. Пример см. в разделе MatlabExecureError: Undefined Function.

При вызове функции MATLAB, которая принимает целые числа в качестве числовых входных аргументов, можно передать входные аргументы типа данных Python. int к функции.