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