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 of 4
.
Convert to data type float
. For
example, x = float(4)
casts the number to data
type float
.
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 type double
from a list
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.