Main Content

Limitations to Python Support

Features Not Supported in MATLAB®

Closing the Python® interpreter while running MATLAB.

Saving (serializing) Python objects into a MAT-file.

Interactive Python help (calling py.help without input arguments).

py.input and py.raw_input (version 2.7).

Accessing static properties of a Python class.

MATLAB isa function does not recognize virtual inheritance.

MATLAB class inheritance from a Python class.

Customized (dynamic) attribute access.

Nested Python classes.

Modules that start MATLAB in a separate process, for example, the multiprocessing module.

Modules that read sys.argv, the command-line arguments passed to a Python script, for example, Tkinter.

Dynamically generated Python classes, for example, collections.namedtuple in CPython 2.7.

Dynamically attaching new object attributes. Instead, use py.setattr.

Class names or other identifiers starting with an underscore (_) character. Instead, use the Python py.getattr and py.setattr functions.

Python modules generated by the MATLAB Compiler SDK™ product.

Python code using Cocoa (AppKit) for user interfaces on macOS platforms.

The size of variables passed between Python and MATLAB is limited to 2 GB when you call a Python function out-of-process. This limit applies to the data plus supporting information passed between the processes.

Unsupported MATLAB Types

These MATLAB types are not supported in Python.

  • Multidimensional char or cell arrays

  • Structure arrays

  • Complex, scalar integers or arrays

  • Sparse arrays

  • categorical,
    table,
    containers.Map,
    datetime types

  • MATLAB objects

  • meta.class (py.class)

Related Topics