Main Content

MATLAB から Python モジュールへのアクセス - 入門

すべての標準 Python® ライブラリのコンテンツに MATLAB® からアクセスできます。同様に、サードパーティやユーザー作成のモジュールの機能も使用できます。Python の機能を直接 MATLAB から呼び出すには、呼び出す Python 関数の名前に接頭辞 py. を追加します。

  • Python 標準ライブラリ内のコンテンツを呼び出すには、Python の関数名またはクラス名の前に py. を追加します。

    py.list({"This","is a","list"}) % Call built-in function list
  • 使用可能なモジュールのコンテンツを呼び出すには、Python モジュール名の前に py. を追加し、その後に Python の関数名またはクラス名を続けます。

    py.textwrap.wrap("This is a string") % Call wrap function in module textwrap

これらを使用するためにモジュールをインポートする必要はありません。ただし、MATLAB 名前空間のコンテンツをインポートする場合と同じ方法で、Python の名前を MATLAB 関数にインポートできます。詳細については、Python と MATLAB の import コマンドの理解を参照してください。

MATLAB には、Python インタープリターの Python コードを MATLAB から直接実行する方法もあります。詳細については、MATLAB から Python 機能を直接呼び出すを参照してください。

学習目的

このチュートリアルでは、以下を行う方法を説明します。

  • コンピューター上の Python のバージョンを確認する。

  • Python オブジェクトを作成し、そのオブジェクトに対しメソッドを呼び出す。

  • Python モジュールのヘルプを表示する。

  • 特殊な Python list 型、tuple 型、dict (ディクショナリ) 型を作成する。

  • MATLAB 関数と同じ名前のメソッドを Python オブジェクトに対し呼び出す。

  • 独自の Python モジュールから機能を呼び出す。

  • 例を検索する。

Python 構成の確認

Python を MATLAB で使用するには、サポートされているバージョンの Python がマシンにインストールされていなければなりません。詳細については、Python を使用するためのシステムの構成を参照してください。

Python のパスがシステム パス環境変数に含まれていることを確認してください。サポートされているバージョンの Python があることを確認するには、以下を入力します。

pyenv
ans = 

  PythonEnvironment with properties:

          Version: "3.11"
       Executable: "C:\Users\aname\AppData\Local\Programs\Python\Python311\pythonw.exe"
          Library: "C:\Users\aname\AppData\Local\Programs\Python\Python311\python311.dll"
             Home: "C:\Users\aname\AppData\Local\Programs\Python\Python311"
           Status: NotLoaded
    ExecutionMode: OutOfProcess

Version プロパティの値が空の場合、サポートされているバージョンはありません。Python のインストールの詳細については、Python を使用するためのシステムの構成を参照してください。

MATLAB での Python 標準ライブラリ モジュールへのアクセス

MATLAB はマシンの Python インタープリターと対話し、すべての標準ライブラリ コンテンツにアクセスできるようにします。たとえば、Python の list データ型を作成します。

res = py.list({"Name1","Name2","Name3"})
res = 

  Python list with values:

    ['Name1', 'Name2', 'Name3']

MATLAB は Python オブジェクトを認識し、MATLAB cell 配列を自動的に適切な Python 型に変換します。

オブジェクトに対して Python メソッドを呼び出すことができます。list オブジェクトで使用可能なメソッドを表示するには、methods(py.list) と入力します。たとえば、Python 関数 append を使用して、リスト res を更新します。

res.append("Name4")
res
res = 

  Python list with with values:

    ['Name1', 'Name2', 'Name3', 'Name4']

変数 list を MATLAB 変数に変換するには、string を呼び出します。

mylist = string(res)
mylist =

  1×4 string array

    'Name1'    'Name2'    'Name3'    'Name4'

MATLAB での Python ドキュメンテーションの表示

MATLAB で Python 関数のヘルプ テキストを表示することができます。以下に例を示します。

py.help("list.append")
Help on method_descriptor in list:

list.append = append(...)
    L.append(object) -> None -- append object to end

py. と入力した際のタブ補完では、利用可能な Python 機能は表示されません。詳細については、Python 関数のヘルプを参照してください。

リスト型、タプル型、ディクショナリ型の作成

次の表に list 型、tuple 型、および dict 型を作成するためのステートメントを示します。左側のステートメントは、Python インタープリターから実行します。右側のステートメントは、MATLAB のステートメントです。

Python list[]

MATLAB py.list

>>> ['Robert', 'Mary', 'Joseph']>> py.list({"Robert","Mary","Joseph"})
>>> [[1,2],[3,4]]>> py.list({py.list([1,2]),py.list([3,4])})

Python tuple()

MATLAB py.tuple

>>> ('Robert', 19, 'Biology')>> py.tuple({"Robert",19,"Biology"})

Python dict{}

MATLAB py.dict

>>> {'Robert': 357, 'Joe': 391, 'Mary': 229}>> py.dict(Robert=357,Mary=229,Joe=391)

メソッドおよび関数の優先順位

Python クラスが Python 型の MATLAB コンバーター メソッドと同じ名前のメソッドを定義した場合、MATLAB は Python メソッドを呼び出します。これは、そのクラスのオブジェクトで MATLAB コンバーター メソッドを呼び出すことはできないことを意味します。

たとえば、Python クラスが char メソッドを定義する場合、次のステートメントは Python メソッドを呼び出します。

char(obj)

MATLAB 関数 char を使用するには、以下を入力します。

char(py.str(obj))

他の Python モジュールへのアクセス

MATLAB では独自の Python コードとサードパーティ モジュールを使用できます。コンテンツは Python パス上になければなりません。サードパーティ モジュールをインストールすると、コンテンツが Python パス上に配置されます。独自のモジュールを作成する場合は、自分でモジュールをパス上に配置する必要があります。

例については、ユーザー定義の Python モジュールの呼び出しを参照してください。

Python の例

MATLAB ライブ エディターで開くことのできるコードの例は、MATLAB からの Python の呼び出しページの使用例を検索してください。MATLAB の例の検索については、MATLAB コード例を参照してください。

オンラインのデータセットを使用する例は、こちらの MathWorks のブログ投稿を参照してください。

参考

関連するトピック