Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Python 関数から返されたデータの処理

Python 型から MATLAB 型への自動変換

MATLAB® は Python® 関数から返された以下のデータ型を自動的に MATLAB 型に変換します。他の型を変換するには、Python 型から MATLAB 型への明示的な変換を参照してください。

Python に表示される Python の戻り値の型

結果の MATLAB の型 — スカラー

float

double

complex

複素数の double

bool

logical

datetime

datetime

Python 型から MATLAB 型への明示的な変換

Python 関数の出力が、numpy.ndarray などの Python バッファー プロトコルを実装していて、それが数値または logical である場合、MATLAB によって以下が表示されます。

  • 実際の Python 型

  • 基となるデータ

  • 対応する MATLAB 変換関数。この関数を使用して、Python オブジェクトを MATLAB 配列に完全に変換します。

以下の MATLAB 関数を使用して、Python データ型を MATLAB 型に変換します。

MATLAB に表示される Python の戻り値の型またはプロトコル

MATLAB の変換関数

py.str

string
char

MATLAB での Python str 変数の使用

__str__ メソッドをもつオブジェクト

char

py.help('datetime.date.__str__')
Help on wrapper_descriptor in datetime.date:

datetime.date.__str__ = __str__(self, /)
    Return str(self).
d = py.datetime.date(...
    int32(2020),int32(3),int32(4));
char(d)
ans = '2020-3-04'

py.int
py.long
py.float
py.bool

数値関数:
double
single
int8
uint8
int16
uint16
int32
uint32
int64
uint64

 
logical

py.bytes

uint8

 

py.array.array
py.numpy.ndarray
py.memoryview

任意の形式の py.array.array および py.memoryview オブジェクトを、目的の MATLAB 型に変換できます。

数値関数:
double
single
int8
uint8
int16
uint16
int32
uint32
int64
uint64

MATLAB での Python 数値変数の使用。たとえば、Python の整数配列型を MATLAB で使用します。

py.listpy.tuple

double
single
int8
uint8
int16
uint16
int32
uint32
int64
uint64
logical
string
cell

MATLAB での Python list 変数の使用
MATLAB での Python tuple 変数の使用

詳細については、list または tuple の要素の変換中のエラーを参照してください。

マッピング プロトコル (例: py.dict)

struct

MATLAB での Python dict 変数の使用

py.datetime.datetime

datetime

dt = py.numpy.arange('2022-12-30', ...
    '2023-01-10',dtype='datetime64[D]');

py.datetime.timedelta

duration

td = py.numpy.array([1,2,3,4], ...
    dtype='timedelta64[h]');

たとえば、Python 関数は次の p 配列を返します。

p = 

  Python ndarray:

     8     1     6
     3     5     7
     4     9     2

    Use details function to view the properties of the Python object.

    Use double function to convert to a MATLAB array.

次のように入力して、これを MATLAB 行列 P に変換できます。

P = double(p)
P = 3×3    
     8     1     6
     3     5     7
     4     9     2

p の Python プロパティに関する特定の情報が必要な場合は、次のように入力します。

details(p)
    py.numpy.ndarray handle with properties:

           T: [1×1 py.numpy.ndarray]
        base: [1×1 py.NoneType]
      ctypes: [1×1 py.numpy.core._internal._ctypes]
        data: [1×3 py.memoryview]
       dtype: [1×1 py.numpy.dtype[float64]]
       flags: [1×1 py.numpy.flagsobj]
        flat: [1×1 py.numpy.flatiter]
        imag: [1×1 py.numpy.ndarray]
    itemsize: [1×1 py.int]
      nbytes: [1×1 py.int]
        ndim: [1×1 py.int]
        real: [1×1 py.numpy.ndarray]
       shape: [1×2 py.tuple]
        size: [1×1 py.int]
     strides: [1×2 py.tuple]

  Methods, Events, Superclasses

Python モジュールが __doc__ 属性でコンテンツを提供する場合、MATLAB はその情報にリンクします。

関連する例

詳細