Main Content

MATLABPython 中的默认数值类型

默认情况下,MATLAB® 以双精度浮点数形式存储所有数值。而 Python® 默认情况下将一些数值存储为整数。由于这种差异,您可能会将整数作为输入参数传递给需要双精度数值的 MATLAB 函数。

以 MATLAB 中的这些变量赋值为例:

x = 4;
y = 4.0;

xy 的数据类型均为 double。现在,相同的赋值在 Python 中如下所示:

x = 4
y = 4.0

xy 具有不同的数值数据类型。

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]) 从 Python 整数 list 创建具有 double 数据类型的 MATLAB 数组。

当您将整数传递给接受数据类型为 double 的输入参数的 MATLAB 函数时,引擎会引发错误。有关示例,请参阅 MatlabExecutionError: Undefined Function

当调用接受整数作为数值输入参数的 MATLAB 函数时,可以将具有 Python 数据类型 int 的输入参数传递给该函数。