このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
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 があることを確認するには、以下を入力します。
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 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 | MATLAB |
---|---|
>>> ['Robert', 'Mary', 'Joseph'] | >> py.list({"Robert","Mary","Joseph"}) |
>>> [[1,2],[3,4]] | >> py.list({py.list([1,2]),py.list([3,4])}) |
Python | MATLAB |
---|---|
>>> ('Robert', 19, 'Biology') | >> py.tuple({"Robert",19,"Biology"}) |
Python | MATLAB |
---|---|
>>> {'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 のブログ投稿を参照してください。