0

Python にインポートしたい構造体内に複数の構造体を含む MATLAB データ ファイルがあります。MATLAB では、main_structがメイン ファイルの場合、必要なデータに取り掛かることができます -

leaf1 = main_struct.tree1.leaf1

leaf2 = main_struct.tree1.leaf2

等々。ここで、python の構造体を含む .mat ファイルをインポートして、.mat ファイルにアクセスleaf1leaf2ます。Pythonでは、マットファイルをロードできます-

import scipy.io as sio

data = sio.loadmat("main_struct.mat",squeeze_me=True, struct_as_record=False);
tree1 = data.['tree1'];

の 2 番目の構造体にアクセスするにはどうすればよいtree1ですか?

4

1 に答える 1

4

MATLAB に以下がある場合

S = struct('tree1', struct('leaf1', {1}, 'leaf2', {2}));
save('filename.mat', '-struct', 'S')

withを使用するloadmatstruct_as_record = False、 の結果はdata['tree1']scipy.io.matlab.mio5_params.mat_structネストされた構造へのアクセスに使用できるオブジェクトになります。

次の方法で、基になるデータにアクセスします。

from scipy.io import loadmat

data = loadmat('filename.mat', squeeze_me=True, struct_as_record=False)

leaf1 = data['tree1'].leaf1
# 1

leaf2 = data['tree1'].leaf2
# 2
于 2016-04-14T18:01:26.677 に答える