2009-12-31 9 views
7

this question जो निम्नलिखित (और उत्तरों) को पढ़ने के लिए पूछता है (और उत्तर) Scipy का उपयोग करके Matlab में बनाए गए .mat फ़ाइलों को पढ़ने के लिए, मैं जानना चाहता हूं कि आयातित structs में फ़ील्ड का उपयोग कैसे करें।पायथन में लोडमैट का उपयोग कर .mat फ़ाइल से आयातित संरचना में फ़ील्ड्स तक कैसे पहुंचे?

>> load bla % imports a struct called G 
>> G 

G = 

     Inp: [40x40x2016 uint8] 
     Tgt: [8x2016 double] 
     Ltr: [1x2016 double] 
    Relevant: [1 2 3 4 5 6 7 8] 

अब मैं अजगर में भी ऐसा ही करना चाहते हैं:

x = scipy.io.loadmat('bla.mat') 
>>> x 
{'__version__': '1.0', '__header__': 'MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Wed Jun 07 21:17:24 2006', 'G': array([[<scipy.io.matlab.mio5.mat_struct object at 0x0191F230>]], dtype=object), '__globals__': []} 
>>> x['G'] 
array([[<scipy.io.matlab.mio5.mat_struct object at 0x0191F230>]], dtype=object) 
>>> G = x['G'] 
>>> G 
array([[<scipy.io.matlab.mio5.mat_struct object at 0x0191F230>]], dtype=object) 

सवाल है, मैं कैसे उपयोग कर सकते हैं है

मैं Matlab में एक फ़ाइल जिसमें से मैं एक struct आयात कर सकते हैं है संरचना जी के सदस्यों: Inp, Tgt, Ltr और Relevant, जिस तरह से मैं मैटलैब में कर सकता हूं?

+0

सहायता (जी) और डीआईआर (जी) क्या कहते हैं (और जी [0] के लिए भी) – Kimvais

+0

यदि आप 'x = scipy.io.loadmat (' bla.mat ', struct_as_record = सच) '? देखें http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.loadmat.html – unutbu

उत्तर

6

सबसे पहले, यदि संभव हो तो मैं Scipy svn में अपग्रेड करने की अनुशंसा करता हूं - हाल ही में कुछ नाटकीय गति अप के साथ matlab io के सक्रिय विकास हुए हैं।

जैसा कि उल्लेख किया गया है कि यह struct_as_record=True के साथ प्रयास करने लायक हो सकता है। लेकिन अन्यथा आप अंतःक्रियात्मक रूप से खेलकर इसे बाहर निकालने में सक्षम होना चाहिए।

आपका जी एमओओ संरचना वस्तुओं की एक सरणी है - उदाहरण के लिए आप G.shape देख सकते हैं। इस मामले में मुझे लगता है कि G = x['G'][0,0] आपको इच्छित ऑब्जेक्ट देना चाहिए। तो आप G.Inp आदि तक पहुंचने में सक्षम होना चाहिए

+1

यह मेरे लिए भी काम करता था, हालांकि मुझे इसे एक संदिग्ध/शब्दकोश, यानी एक्स [ 'जी'] [0, 0] ['आईएनपी'] – eacousineau

संबंधित मुद्दे