Python への MATLAB データの引き渡し
MATLAB® で Python® 関数を呼び出すと、MATLAB の Python インターフェイスは Python 言語においてデータを最も適切に表す型に MATLAB データを変換します。MATLAB における Python データの使用の詳細については、Python 関数から返されたデータの処理を参照してください。
Python への MATLAB スカラー データの受け渡し
MATLAB では、MATLAB から Python 関数にスカラー データを渡すと、Python インターフェイスによってデータが同等の Python データ型に変換されます。
MATLAB 入力引数の型 — | 結果の Python | 例 |
---|---|---|
|
| MATLAB での Python 数値変数の使用 |
|
| z = complex(1,2); py.cmath.polar(z) ans = Python tuple with values: (2.23606797749979, 1.1071487177940904) |
|
| - |
|
| - |
|
| - |
|
| - |
|
| MATLAB での Python str 変数の使用 |
|
| py.list({string(missing),"Value"}) ans = Python list with values: [None, 'Value'] |
|
| - |
|
| MATLAB での Python ディクショナリの使用 |
|
| MATLAB での Python ディクショナリの使用 |
table | py.pandas.DataFrame | MATLAB での Python pandas DataFrame の使用 |
timetable | py.pandas.DataFrame | MATLAB での Python pandas DataFrame の使用 |
datetime |
| Python での MATLAB datetime 型の使用 |
duration |
| Python での MATLAB duration 型の使用 |
Python オブジェクト — |
| - |
Python 関数専用の関数ハンドル |
| Python 関数 map への Python 関数の受け渡し |
Python への MATLAB 配列データの受け渡し
MATLAB では、MATLAB 配列を Python 関数への入力として渡し、NumPy モジュールが Python 環境で使用可能な場合、Python インターフェイスは自動的に配列を Python NumPy 配列に変換します。Python 関数への入力として MATLAB 配列を渡すときに NumPy モジュールが使用可能でない場合、Python インターフェイスはベクトル入力を行列入力と同様に処理します。つまり、Python インターフェイスはこれらの入力を Python memoryview
オブジェクトに変換します。(R2025a 以降)
R2025a より前: NumPy パッケージの有無にかかわらず MATLAB ベクトルを Python 関数に渡すと、Python インターフェイスはベクトルを Python array.array
オブジェクトに変換します。
MATLAB 入力配列の型 | 結果の Python の型 (NumPy あり) |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| この変換はサポートされていません。 |
Python 言語は MATLAB 配列に格納されたデータなど、メモリ バッファーにアクセスするためのプロトコルを提供します。NumPy がインストールされていない場合、Python インターフェイスは MATLAB 配列に対してこの Python バッファー プロトコルを実装します。これにより、データをコピーすることなく、MATLAB と同じプロセスで実行されている Python コードから MATLAB 配列を直接読み取ることができます。このデータ バッファーは、Python memoryview
オブジェクトに変換されます。次の例では、Python インターフェイスは、MATLAB 配列 marr
を memoryview
オブジェクトに変換します。この変換時にオブジェクトを array.array
コンストラクターに渡します。
marr = [1,2,3];
pyarr = py.array.array('d',marr);
サポートされていない MATLAB 型
以下の MATLAB 型は、Python ではサポートされていません。
多次元の
char
またはcell
配列スパース配列
struct
配列categorical
containers.Map
MATLAB オブジェクト
matlab.metadata.Class
(py
.class
)