1

*.matPython 2.6 でファイル (使用された Matlab のバージョンがわからない) を読み込んでいますが、配列の次元が原因で読み込んだscipy.io.loadmat配列を操作できません。要素にアクセスしようとしても、複数の要素を持つ 0-d 配列になってしまうようです。thisthisを見てきましたが、要素の操作方法についてはまだ固執しています。

私が配列を読んだとしましょう、

data = scipy.io.loadmat(filename,squeeze_me=False)
....
b = data[0][0]['somevar']

この後、私は

b=  [[ array([[ 1.0884988 ,  1.08116209,  1.07364911,  1.06662874,  1.06008637,
                1.0530468 ,  1.04619028,  1.03984295,  1.03342865,  1.02715746,
                1.02114066,  1.01496634,  1.00904967,  1.00316573,  0.99803184,
                0.99262961 ]])]]

b.squeeze()ここで、またはを試みるとb = b[0][0]

b=  [[ 1.0884988   1.08116209  1.07364911  1.06662874  1.06008637  
       1.0530468   1.04619028  1.03984295  1.03342865  1.02715746  
       1.02114066  1.01496634  1.00904967  1.00316573  0.99803184  
       0.99262961]]

これは0次元配列であり、当然エラーになります

IndexError: 0-d arrays can't be indexed

の要素にアクセスできませんb

0-d 配列を生成せずに、できれば複数のインデックスloadmatを使用するよりもエレガントに、最初に読み取った配列の要素にアクセスするにはどうすればよいですか? [0]助けや提案をありがとう。

4

1 に答える 1