2012-04-02 14 views
9

से एक्सेस करना चर रहा साइकोसलैब, एक (बहुत बुरी तरह से तैयार किया गया है) साइलैब जो चित्रमय मॉडलिंग समर्थन करने के लिए होता है के क्लोन में प्रयोगात्मक डेटा लोड करने के लिए की जरूरत है। वेब पर प्रलेखन बहुत खराब है, लेकिन यह स्किलैब और ऑक्टेट के समान ही है।स्ट्रिंग नाम

मुझे जिस डेटा को संसाधित करने की आवश्यकता है वह टेक्स्ट फ़ाइलों की एक निश्चित संख्या में निहित है: Data_005, Data_010, ..., Data_100। उनमें से प्रत्येक को -asciiloadmatfile कमांड के लिए ध्वज का उपयोग करके लोड किया जा सकता है।

समस्या इस तथ्य से आती है कि loadmatfile("foo", "-ascii")foo.mat फ़ाइल को foo नामक चर में लोड करता है।

for i = [5:5:100] 
    name = sprintf("Data_%02d", i); 
    loadmatfile(name, "-ascii"); 
    x = read_var_from_name(name); 
    do_something(x); 
end 

जहां मैं क्या के लिए खोज एक builtin read_var_from_name जो मुझे स्ट्रिंग द्वारा आंतरिक प्रतीक मेज तक पहुंच सकते हैं है: डेटा फ़ाइलों पर चक्र के लिए करने के लिए, मैं की तरह कुछ करने के लिए की आवश्यकता होगी।

क्या आप जानते हैं कि कोई समान कार्य मौजूद है या नहीं?

नोट्स:

  1. इस व्यवहार अधिभावी यदि आपकी फ़ाइल ascii प्रारूप में है का कोई रास्ता नहीं नहीं है;
  2. इस चरण में मैं ऑक्टेट का भी उपयोग कर सकता हूं (कोई ग्राफिकल मॉडलिंग शामिल नहीं है), हालांकि यह वैसे ही व्यवहार करता है।

उत्तर

9
>> foo = 3.14; name = 'foo'; eval(name) 

foo = 

    3.1400 

MATLAB में ऊपर काम करता है, और साइलैब के दस्तावेज़ कहते हैं कि यह भी एक eval समारोह है। यकीन नहीं है कि अगर मैं आपको सही ढंग से समझ गया, हालांकि।

+0

सप्तक के तहत काम करने की पुष्टि की और साइकोसलैब – Dacav

9

@ arne.b का एक अच्छा जवाब है।

अपने मामले में आप यह भी कहा कि matlab में कर सकते हैं:

a=load('filename.mat') 
x=a.('variable_name') 
+1

बस कहने के लिए जहां 'eval() चाहता था (एक प्रोग्रामिंग पृष्ठभूमि से किसी के रूप में' बुराई माना जाता है) इस पर ध्यान दिलाने के लिए धन्यवाद; मुझे नहीं पता था कि यह वाक्यविन्यास मौजूद था! – miken32

+0

@ miken32 'eval' वास्तव में बुराई है। – Oli

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