2012-03-16 9 views
6

में डेटा पढ़ने के लिए मैं जावा में 2 डी सरणी में मैटलैब में उत्पादित एक मैट्रिक्स को पढ़ने की कोशिश कर रहा हूं। मैं जावा से एक .mat फ़ाइल (सफलतापूर्वक) में लिखने के लिए अब तक jmatio का उपयोग कर रहा हूं, लेकिन अब दूसरी तरफ जाने का प्रबंधन नहीं कर सकता। मैं इस कोड का उपयोग एक MLArray वस्तु में एक मैट्रिक्स आयात करने के लिए प्रबंधित किया है:मैटलैब से जावा

matfilereader = new MatFileReader("filename.mat"); 
MLArray j = matfilereader.getMLArray("dataname"); 

लेकिन इसकी स्ट्रिंग प्रतिनिधित्व मैं स्वयं डेटा तक पहुँचने के लिए प्रबंधन नहीं कर सके हो रही के अलावा अन्य। मुझे लाइब्रेरी पर इस या दस्तावेज़ीकरण के लिए कोई उदाहरण नहीं मिला, और मैंने वास्तव में एक स्ट्रिंग स्ट्रिंग को दोहरी [] [] सरणी में पार्स करने के लिए लिखा था, लेकिन यह केवल अच्छा है यदि मैट्रिक्स 1000 आइटम से छोटा है ...

, किसी भी अनुभव या सुझाव, धन्यवाद के लिए आभारी होंगे

आमिर

+0

आप MLArray के बजाय MLDouble उपवर्ग का उपयोग कर की कोशिश की? क्या आपने MATLAB में जांच की है कि मैट फ़ाइल सही ढंग से सहेजी गई थी? – yuk

+0

आप विधायक के बजाय एमएलडी डबल का उपयोग कैसे करते हैं? MatfileReader में विधायकों के रूप में चर बदलने के इस एपीआई है। और फ़ाइल के बारे में - हाँ, मैंने कई कोशिश की और वे ठीक हैं। – Amir

+0

मेरा मतलब एमएलडी डबल में विधायक को डालना था। क्या आप 'MLDouble j = (MLDouble) matfilereader.getMLArray (" डेटानाम ") आज़मा सकते हैं;'? – yuk

उत्तर

0

मुझे लगता है कि उपकरण के साथ परिचित नहीं हूँ, लेकिन यह बहुत पुरानी है। *.mat फ़ाइल के पुराने संस्करण में सहेजने का प्रयास करें और देखें कि आपके परिणाम बदलते हैं या नहीं। यही है, जब आप r * .mat फ़ाइल को सहेजते हैं तो '-v7.0' या '-v6' ध्वज जोड़ें।

उदाहरण कोड:

save filename var1 var2 -v7.0 

या

save filename var1 var2 -v6 
+0

Ive ने अभी भी एक ही परिणाम के साथ कोशिश की। लेकिन यह फ़ाइल या फ़ाइल से संबंधित कुछ त्रुटि नहीं है, समस्या यह है कि कौन सा कोड जावा चर में विधायक प्राप्त करने के लिए उपयोग किया जाता है? – Amir

2

matfilereader.getMLArray MLArray वस्तु में विभिन्न प्रकार के डेटा एक्सेस करने के कई उपवर्गों है।

डबल सरणी का प्रतिनिधित्व करने के लिए आप MLDouble को MLArray डाली कर सकते हैं:

MLDouble j = (MLDouble)matfilereader.getMLArray("dataname");