Python コンテナー型内の要素へのアクセス
Python® container は、通常、sequence 型 (list または tuple) または mapping 型 (dict) です。Python では、大かっこ [] または関数 operator.getitem を使用してコンテナー内の要素にアクセスします。スカラー string 引数を使用してコンテナーにインデックス付けすることができます。
シーケンス型
Python シーケンス型は MATLAB® cell 配列のような動作をします。
サブシーケンスを取得するには、小かっこ () のインデックスを使用します。
li = py.list({1,2,3,4});
res = li(2:3)res =
Python list with values:
[2.0, 3.0]
Use string, double or cell function to convert to a MATLAB array.
要素の内容を取得するには中かっこ {} を使用します。
res = li{1}res = 1
型のマッピング
型をマッピングするには、Python の "キー" 引数を中かっこで指定します。
patient = py.dict(name="John Doe",billing=127); patient{"billing"}
ans = 127
サイズと次元
MATLAB によってシステムの情報が表示されます。
p = py.sys.path; class(p)
ans = 'py.list'
p にインデックスを付けます。
p(1)
p{1}ans =
Python list with values:
['c:\\work']
Use string, double or cell function to convert to a MATLAB array.
ans =
Python str with no properties.
c:\work次元を確認します。
len = length(p) sz = size(p)
len = 11
sz = 1×2
1 11
配列のサポート
MATLAB はシーケンス型を 1 行 N 列の配列に変換します。
インデックス
Python は 0 ベースのインデックスを使用し、MATLAB は 1 ベースのインデックスを使用します。Python プログラミングでは、長さ len の配列 x の要素には x(0) から x(len-1) までを使用してアクセスします。MATLAB でこの配列を操作するとき、x(1) から x(len) までを使用してこれらの要素にアクセスします。
Python オブジェクトへのインデックス付けの制限
MATLAB 行列内の要素を参照する場合と同様に、リストや辞書などの Python コンテナー オブジェクト内のデータにもインデックス値を使用してアクセスできます。ただし、行列のインデックス指定方法の中には Python の型に対してはサポートされていないものがあります。
| MATLAB でサポートされないインデックス機能 |
|---|
大かっこ |
|
論理インデックス付け。 |
任意のインデックスの配列を使用したコンテナー内のデータへのアクセス。インデックスは |
コンマ区切りリスト。 |
関数 |