メインコンテンツ

MATLABPython 間でのデータの受け渡し

MATLAB® データを Python® に返すと、Python 用の MATLAB エンジン API によってデータが同等の Python データ型に変換されます。また、MATLAB エンジンにより、受け取った Python データは MATLAB データ型に変換されます。

MATLAB から Python へのデータの受け渡し

MATLAB から Python に直接データを渡すか、Python 内の MATLAB 関数からの出力としてデータを渡すと、MATLAB により、データが同等の Python データ型に変換されます。

MATLAB 出力引数の型
(別途記載がない場合はスカラー)

結果の Python データ型

数値配列

matlab 数値配列オブジェクト
Python 変数としての MATLAB 配列を参照してください。

double
single

float

複素数 (任意の数値型)

complex

int8, int16, int32, int64
uint8, uint16, uint32, uint64

int

NaN

float('nan')

Inf

float('inf')

logical

bool

char 配列 (1 行 N 列または N 行 1 列)

str

string

str

string 配列 (1 行 N 列または N 行 1 列)

strlist

struct

dict

cell 配列 (1 行 N 列または N 行 1 列)

list

datetime

datetime.datetime

duration

datetime.timedelta

datetime 配列

numpy.datetime64 配列
NumPy モジュールが Python 環境で使用できない場合、MATLAB は datetime 配列を matlab.object に変換します。

duration 配列

numpy.timedelta 配列
NumPy モジュールが Python 環境で使用できない場合、MATLABduration 配列を matlab.object に変換します。

table
timetable

pandas.DataFrame
table での入れ子のレベルは 1 レベルのみサポートされます。Python Pandas モジュールが Python 環境で使用できない場合、MATLABtable または timetablematlab.object に変換します。

dictionary

matlab.dictionary.

MATLAB ハンドル オブジェクト (containers.Map 型など)

matlab.object
MATLAB は matlab.object 自体を返すのではなく、オブジェクトへの参照を返します。MATLAB セッション間で matlab.object を渡すことはできません。

MATLAB 値オブジェクト (categorical 型など)

matlab.object
値オブジェクトを MATLAB 関数に渡すことはできますが、作成または変更することはできません。

サポートされていない MATLAB データ型

表に記載されている例外に加えて、MATLAB は次の MATLAB データ型を Python データ型に変換しません。

  • char 配列 (MN 列)

  • string 配列 (MN 列)

  • cell 配列 (MN 列)

  • スパース配列

  • struct 配列

  • MATLAB で生成されていないオブジェクト (Java® オブジェクトなど)

  • 関数ハンドル

Python から MATLAB へのデータの受け渡し

Python から MATLAB に直接データを渡すか、Python 内の MATLAB 関数への入力引数としてデータを渡すと、MATLAB エンジンにより、データが同等の MATLAB データ型に変換されます。

Python データ型

結果の MATLAB データ型
(別途記載がない場合はスカラー)

matlab 数値配列オブジェクト

数値配列
Python 変数としての MATLAB 配列を参照してください。

バッファー プロトコルをサポートする Python オブジェクト (memoryviewarray.array、NumPy ndarray など)

数値配列

float

double

complex

複素数の double

int

int64

float('nan')

NaN

float('inf')

Inf

bool

logical

str

char

bytearray

uint8 配列

bytes

uint8 配列

list

cell 配列

set

cell 配列

tuple

cell 配列

dict

struct
dict キーは特定の仕様を満たしている必要があります。MATLAB での Python ディクショナリの使用を参照してください。

datetime.datetime
numpy.datetime64 スカラー

datetime
How MATLAB Handles Datetime and Duration Types in Pythonを参照してください。

datetime.timedelta
numpy.timedelta64 スカラー

duration
How MATLAB Handles Datetime and Duration Types in Pythonを参照してください。

numpy.datetime64 配列

datetime 配列
How MATLAB Handles Datetime and Duration Types in Pythonを参照してください。

numpy.timedelta64 配列

duration 配列
How MATLAB Handles Datetime and Duration Types in Pythonを参照してください。

pandas.DataFrame

table
table での入れ子のレベルは 1 レベルのみサポートされます。Use MATLAB Tables and Timetables in Pythonを参照してください。

datetime 列を含む pandas.DataFrame

timetable
timetable での入れ子のレベルは 1 レベルのみサポートされます。Use MATLAB Tables and Timetables in Pythonを参照してください。

matlab.dictionary

dictionary
matlab.dictionary キーおよび値は特定の仕様を満たしている必要があります。MATLAB は、str データが string に変換されることを除き、この表のマッピングを使用して matlab.dictionary オブジェクト内のデータを変換します。MATLAB での Python ディクショナリの使用を参照してください。

マッピング プロトコルをサポートする、dict 以外の Python オブジェクト (collections.OrderedDict など)

dictionary

サポートされていない Python データ型

表に記載されている例外に加えて、MATLAB は次の Python データ型を MATLAB データ型に変換しません。

  • Python クラス (module.type) オブジェクト

  • None オブジェクト

参考

トピック