में फ़ाइलों को लिखते समय स्वरूपण संख्या यह संख्या स्वरूपण के संबंध में this प्रश्न जारी है, और मेरे पहले question से संबंधित टेक्स्ट फ़ाइलों में बहुत विशिष्ट गणित आउटपुट प्राप्त करने के बारे में है।गणित
मुझे अक्सर डेटा पीढ़ी के लिए गणित में उच्च परिशुद्धता का उपयोग करना पड़ता है, लेकिन केवल विज़ुअलाइज़ेशन उद्देश्यों के लिए अपेक्षाकृत कम परिशुद्धता की आवश्यकता होती है। मैं बाद में उपयोग के लिए डेटा को सभी सिंबल नामों और ऐरे संरचनाओं के साथ बरकरार रखना चाहता हूं। इसके लिए मैं Save[]
का उपयोग कर रहा हूं, लेकिन दो संबंधित समस्याएं हैं।
उच्च परिशुद्धता "को प्रदूषित करता है" जो बहुत मुश्किल है ज़रूरत से ज़्यादा अंकों के साथ अपने परिणामों से छुटकारा पाने के:
In[1] := b = SetPrecision[7, 50]; a = Pi/b Out[1] := 0.44879895051282760549466334046850041202816705705358654585356351318683091518373`50. In[2] := InputForm @ N[a, 6] Out[2] := 0.44879895051282760549466334046850041203`6.
जहां मैं वास्तव में केवल ०.४४८७९९ की जरूरत है।
- कभी-कभी परिशुद्धता को इंगित करने वाला नंबर भी दूषित हो जाता है और मुझे
4.72642364528438598726943'5.9999999999999999999999
जैसे मान मिलते हैं जहां मुझे आमतौर पर सटीकता की आवश्यकता नहीं होती है और4.72642
पर्याप्त होगा।
इनमें से दोनों फ़ाइल आकार के लिए महत्वपूर्ण ओवरहेड पेश करते हैं, और हार्ड डिस्क संग्रहण सस्ता होने पर, फ़ाइल आकार में बाद में फ़ाइलों को मैथमैटिका में लोड करते समय एक बड़ा अंतर होता है।
तो, के साथ, जैसे, aa
कि एक अनियमित सरणी में 50 अंकों मनमाना परिशुद्धता संख्या में शामिल है, शुरू करने वहाँ एक रास्ता में बनाया मुझे एक पाठ फ़ाइल है कि इस
aa = {{2.0437`4, 4.7276`4, ...}, ...}
की तरह कुछ पढ़ता था पाने के लिए है EDIT: स्पष्टीकरण के लिए, मुझे संख्याओं के प्रदर्शन या संख्याओं की परिशुद्धता को ट्रैक करने या संख्याओं की सटीकता को बदलने के साथ समस्या नहीं है। मुझे किस समस्या का सामना करना पड़ रहा है यह नियंत्रित कर रहा है कि फ़ाइल में कितनी संख्या लिखी गई है।
N
, NumberForm
, OutputForm
, InputForm
, *Form
, आदि का उपयोग करना, सभी Save
के साथ ठीक से काम नहीं करते। और Save
एकमात्र निर्यात विकल्प है जो मुझे लगता है कि प्रतीक और सरणी संरचना निर्यात करता है। स्वरूपण को नियंत्रित करने के लिए Export
और Put*
का उपयोग बेहतर रूप से नियंत्रित करने के लिए किया जा सकता है लेकिन उनमें प्रतीक शामिल नहीं है (और Export
के मामले में सरणी संरचना भी खो जाती है)।
मुझे परिशुद्धता की जानकारी की आवश्यकता नहीं है लेकिन मुझे इसे हटाने में बेहद मुश्किल लगता है :-)। मेरी समस्या यह नहीं है कि नोटबुक में कितने अंक दिखाए जाते हैं, मेरी समस्या यह है कि फाइल में कितने अंक लिखे गए हैं, अधिमानतः उस पर एक सादा पाठ फ़ाइल। – Timo
आपकी फ़ाइल में छः अंकों को मुद्रित करने के लिए ToExpression [ToString [NumberForm [<संख्याओं की सूची>, 6]]] का प्रयास करें। आपको जो चाहिए उसे निर्दिष्ट करने के आधार पर सहेजें या रखरखाव का उपयोग कर सकते हैं। –
संख्याएं फ़्लोट होने पर काम नहीं करती हैं। मैं एक क्लज पर काम कर रहा हूं जो कि आप जो सुझाव दे रहे हैं उसके समान कुछ करता है लेकिन 'RealDigits' और' FromDigits' के साथ। – Timo