2011-06-09 17 views
5

मुझे कोई समस्या है जहां 8-अंकों की स्ट्रिंग जैसे '313397E9' एक्सेल में पारित की जा रही है, फिर '313397000000000' या '3.133970e + 014' संख्या के रूप में पढ़ें।matlab वैज्ञानिक नोटेशन समस्या

इसे मैटलैब द्वारा पढ़ा जा रहा है और स्ट्रिंग नहीं, संख्या के रूप में पहचाना जाता है। इसे वापस 8-अंकों की स्ट्रिंग में बदलने का सबसे आसान तरीका क्या होगा?

आपकी सभी मदद के लिए अग्रिम धन्यवाद।

+0

आपको हमें MATLAB और Excel –

+0

के बीच संचार तंत्र बताना होगा, यह एक्सेल खोलने के लिए एक्टक्स सर्वर का उपयोग करता है, फिर विशिष्ट शीट प्राप्त करता है, फिर मान = (शीट। रेंज (['ए 2: ए 32000']) मूल्य)। यह सब कोड के एक बड़े आधार पर है जिसे मैंने नहीं लिखा था, और शायद इसके साथ गड़बड़ नहीं करनी चाहिए। क्या यह संख्या एक बार होने के बाद इसे 8-अंकों में परिवर्तित करने के लिए वैसे भी है? – Alec

+0

MATLAB में संग्रहीत संख्याएं कैसे हैं। क्या वे वास्तव में तार हैं? और आप उन्हें Excel में कैसे संग्रहीत करना चाहते हैं? स्ट्रिंग्स या नंबर? –

उत्तर

5

Regular expressions to the rescue! आप पिछला शून्य में कनवर्ट करने के लिए REGEXPREP का उपयोग कर सकते हैं, जहां x केवल शून्य की संख्या है जिसे आपने अभी बदल दिया है।

%# convert the number to a string 
nn = num2str(3.133970e+014) 

nn = 
313397000000000 

%# replace zeros using regexprep 
regexprep(nn,'([0]*)','E${num2str(length($1))}') 
ans = 
313397E9 

यह भी अगर nn, स्ट्रिंग की एक सेल सरणी है btw ताकि आप एक ही बार में नंबरों की सूची में बदल सकते हैं काम करता है।

+0

क्या आप 3133 9 00000000.0 को 313390 ई 9 या 3133 9ई 10 में पुनर्प्राप्त करते हैं? –

+0

पूरी तरह से काम करता है! दरअसल, अच्छा बिंदु, जौनी ... मुझे लगता है कि यह जानने का कोई तरीका नहीं है कि मूल्य पहले स्थान पर क्या होना चाहिए ... – Alec

+0

@Jouni: 313390000000000 को 31339E10 में परिवर्तित कर दिया गया है - यह सुनिश्चित नहीं है कि ओपी वास्तव में इरादा है या नहीं। बेशक, अगर विचार हमेशा 6 अंकों के बाद E9 के बाद होता, तो सबकुछ काफी छोटा होगा। इसके अलावा, 3133 9 0000000000.0 को 313393E10.E1 में परिवर्तित कर दिया जाएगा। हालांकि, यह इनपुट तब नहीं होना चाहिए यदि आप 3e + 014 जैसी संख्या से शुरू करते हैं। यदि आवश्यक हो, तो यह निश्चित रूप से regexp में तय किया जा सकता है। – Jonas

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