Default Numeric Types in MATLAB and Python
MATLAB® stores all numeric values as double-precision floating point numbers by default. In contrast, Python® stores some numbers as integers by default. Because of this difference, you might pass integers as input arguments to MATLAB functions that expect double-precision numbers.
Consider these variable assignments in MATLAB:
x = 4; y = 4.0;
Both x
and y
are of data type
double
. Now consider the same assignments in Python:
x = 4
y = 4.0
x
and y
are of different numeric data
types.
print(type(x))
<type 'int'>
print(type(y))
<type 'float'>
Most MATLAB functions take numeric input arguments of data type
double
. The best practice is to ensure that numbers you pass as
input arguments to MATLAB functions are of Python data type float
, not Python data type int
. You can ensure that Python variables are floating point numbers if you:
Make literals floating point numbers. For example, type
4.0
instead of4
.Convert to data type
float
. For example,x = float(4)
casts the number to data typefloat
.Create a
matlab.double
array from a number or sequence. For example,x = matlab.double([1,2,3,4,5])
creates an array of MATLAB data typedouble
from alist
of Python integers.
When you pass an integer to a MATLAB function that takes an input argument of data type
double
, the engine raises an error. See MatlabExecutionError: Undefined Function for an
example.
When you call a MATLAB function that does take integers as numeric input arguments, you can pass
input arguments of Python data type int
to the function.