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])
从 Python 整数list
创建具有double
数据类型的 MATLAB 数组。
当您将整数传递给接受数据类型为 double
的输入参量的 MATLAB 函数时,引擎会引发错误。有关示例,请参阅 MatlabExecutionError: Undefined Function。
当调用接受整数作为数值输入参量的 MATLAB 函数时,可以将具有 Python 数据类型 int
的输入参量传递给该函数。