matlab

2011-04-04 9 views
10

में स्ट्रिंग से पहले 4 अक्षरों को निकालें I स्ट्रिंग उदाहरण के पहले 4 या मध्य 4 या अंतिम चार अक्षरों को कैसे निकाला जा सकता है: जब स्ट्रिंग 01 ईडी 01 एफ 9 81 सी 6 पढ़ती है?matlab

उत्तर

14

एक स्ट्रिंग को वर्णों के वेक्टर की तरह माना जाता है। इस प्रयास करें:

>> string = '01 ED 01 F9 81 C6'; 
>> string(1:5), string(6:11), string(12:17) 

ans = 
01 ED 

ans = 
01 F9 

ans = 
81 C6 

string इस उदाहरण में एक चर नहीं एक विधि है। string(1)string नामक सरणी (या वेक्टर) में पहला चार्ट देता है।

4

आप केवल गैर-सफ़ेद पात्रों चाहते हैं तो आप वर्ण का उपयोग करने के खाली स्थान के लिए और फिर चरित्र सरणी अनुक्रमण दूर करने के लिए ISSPACE समारोह इस्तेमाल कर सकते हैं:

 
>> s = '01 ED 01 F9 81 C6'; 
>> s = s(~isspace(s)) 

s = 

01ED01F981C6 

>> s(1:4) 

ans = 

01ED 

>> s(5:8) 

ans = 

01F9 

>> s(9:end) 

ans = 

81C6 

आप विस्तार कर सकते हैं कि यह एक के कई पंक्तियों पर कार्रवाई करने के चरित्र RESHAPE का उपयोग कर अंतरिक्ष हटाने का परिणाम एक 2d सरणी के लिए वापस बदलने के लिए और उसके बाद संदर्भित अतिरिक्त आयाम सरणी:

 
s = ['01 ED 01 F9 81 C6'; 'F8 CA DD 04 44 3B'] 

s = 

01 ED 01 F9 81 C6 
F8 CA DD 04 44 3B 

>> s = reshape(s(~isspace(s)), size(s, 1), 12) 

s = 

01ED01F981C6 
F8CADD04443B 

>> s(:,1:4) 

ans = 

01ED 
F8CA 

>> s(:,5:8) 

ans = 

01F9 
DD04 

>> s(:,9:end) 

ans = 

81C6 
443B 
+0

@ trolle3000 और बी 3: धन्यवाद लेकिन क्या '81 F6 81 सी 5 सी 1 F3' '01 F0 41 एफ 7 01 सी 6 ' '41 ईडी सी 1 एफ 7 01 सी 6' तो अगर फाइल मूल्यों का एक समूह है मैं इस पर कैसे काम करूं? – Dilip

+0

@ डिलीप: ऊपर अपना संपादित उत्तर देखें जो वर्णन करता है कि एकाधिक लाइनों को कैसे संसाधित करना है। –

0

trolle3000 और बी 3 के रूप में उल्लेख किया है, आप में से युक्त कोष्ठकों का उपयोग स्ट्रिंग के सबसेट निकालने के लिए dices।

स्ट्रिंग पर आप कैसे काम करते हैं, इसके अतिरिक्त प्रश्न का उत्तर देने के लिए, मेरा सुझाव है कि आप प्रत्येक स्थान पर स्ट्रिंग को विभाजित करें, और हेक्साडेसिमल से दशमलव संख्या में कनवर्ट करें।

s = '01 ED 01 F9 81 C6'; 
hex2dec(regexp(s, ' ', 'split')) 

ans = 
    1 
    237 
    1 
    249 
    129 
    198 
+0

धन्यवाद लेकिन मेरी समस्या यह है कि मेरे पास हेक्स कोड की 4000 लाइनों वाली एक फ़ाइल है जिसे मैं थोक में विभाजित करना चाहता हूं, मैं यह कैसे कर सकता हूं? – Dilip