Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

すべての標準 Python® ライブラリのコンテンツに MATLAB® からアクセスできます。Python の機能を直接 MATLAB から呼び出すには、呼び出す Python 関数の名前に接頭辞 py. を追加します。モジュールをインポートする必要はありません。

学習目的

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

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

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

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

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

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

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

  • 例を検索する。

Python 構成の確認

Python を MATLAB で使用するには、サポートされているバージョンの Python がマシンにインストールされていなければなりません。サポートされているバージョンがあることを確認するには、以下を入力します。

pyenv
ans = 

  PythonEnvironment with properties:

          Version: "3.8"
       Executable: "C:\Users\aname\AppData\Local\Programs\Python\Python38\pythonw.exe"
          Library: "C:\Users\aname\AppData\Local\Programs\Python\Python38\python38.dll"
             Home: "C:\Users\aname\AppData\Local\Programs\Python\Python38"
           Status: NotLoaded
    ExecutionMode: OutOfProcess

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

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

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

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

  Python list with no properties.

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

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

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

res.append('Name4')
res
res = 

  Python list with no properties.

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

変数 list を MATLAB 変数に変換するには、リストに対し cell を呼び出し、リストの要素に対して char を呼び出します。

mylist = cellfun(@char,cell(res),'UniformOutput',false)
mylist =

  1×4 cell 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(pyargs(...
'Robert',357,'Mary',229,'Joe',391))


キーワード引数の引き渡しの詳細については、pyargs を参照してください。

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

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 のブログ投稿を参照してください。

参考

関連するトピック