メインコンテンツ

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

Python® 関数を呼び出すときに、MATLAB® Compiler SDK™ は MATLAB データを Python 言語でデータを最適に表す型に変換します。MATLAB での Python データの使用の詳細については、Python 関数から返されたデータの処理を参照してください。

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 環境で使用できない場合、MATLAB は duration 配列を matlab.object に変換します。

table
timetable

pandas.DataFrame
table の入れ子は 1 レベルのみサポートされます。Python Pandas モジュールが Python 環境で使用できない場合、MATLAB は table または timetablematlab.object に変換します。
詳細については、Convert Between MATLAB tables and Pandas DataFramesを参照してください。

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 数値配列オブジェクト

数値配列
matlab の Python モジュールを参照してください。

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

数値配列

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

datetime.timedelta
numpy.timedelta64 スカラー

duration

numpy.datetime64 配列

datetime 配列

numpy.timedelta64 配列

duration 配列

pandas.DataFrame

table
table の入れ子は 1 レベルのみサポートされます。
詳細については、Convert Between MATLAB tables and Pandas DataFramesを参照してください。

datetime 列をもつ pandas.DataFrame

timetable
timetable の入れ子は 1 レベルのみサポートされます。
詳細については、Convert Between MATLAB tables and Pandas DataFramesを参照してください。

matlab.dictionary

dictionary
matlab.dictionary のキーと値は特定の仕様を満たさなければなりません。MATLAB は matlab.dictionary オブジェクト内のデータをこの table のマッピングを使用して変換します。例外として str データは string に変換します。MATLAB での Python ディクショナリの使用を参照してください。

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

dictionary

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

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

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

  • None オブジェクト

参考

トピック