最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

cell 配列の Python シーケンス型としての受け渡し

この例では、MATLAB® cell 配列を Python® 関数に渡す方法を説明します。

次の Python モジュールには、リストの最後にテキストを追加する関数 theend が含まれています。テキスト ファイルを作成し、この Python モジュールをコピーし、そのファイルを prefdir フォルダーなどの書き込み可能なフォルダーに mymod.py として保存します。

# mymod.py
"""Python module demonstrates passing MATLAB types to Python functions"""
def search(words):
    """Return list of words containing 'son'"""
    newlist = [w for w in words if 'son' in w]
    return newlist

def theend(words):
    """Append 'The End' to list of words"""
    words.append('The End')
    return words

list 型の append メソッドを使用して、mymod.py が格納されたフォルダーを Python 検索パスに追加します。

P = py.sys.path;
append(P,prefdir);

MATLAB サンプル データ ファイルを開き、cell 配列 LastName を作成します。

load patients.mat

cell 配列を 1N 列の配列 py.list に変換します。

L = py.list(LastName');
class(L)
ans =

py.list

リストに対して mymod.theend を呼び出します。

py.mymod.theend(L);

Python 関数は、変数 L を出力引数として返しません。その代わり、その値を参照によって更新します。

リストの最後の項目を表示します。

L{end}
ans = 

  Python str with no properties.
   The End

変数 L は、他の Python 関数に渡すことができます。

関連するトピック