MATLAB和Python中默认的数值类型

默认时,MATLAB将所有数值型值保存为双精度浮点型。这跟Python不同,在Python中,有些数值默认时保存为短整型。因为这个差异,有可能在参数传输时产生希望参数为双精度值传的却是短整型值的情况。

在MATLAB中考虑下面的变量赋值情况

code.matlab
>> x=4;
>> y=4.0;

x和y都是double型的。下面考虑相同的赋值在Python中的情况:

code.python
>>> x=4
>>> y=4.0

x和y是不同的数值型数据类型。

code.python
>>> 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)。
  • 用一个数值或一个数列创建matlab.double数组,例如,x=matlab.double([1,2,3,4,5])。