2013-10-29 14 views
8

पर कनवर्ट करें मैं अंकों की सरणी को बाइनरी संख्या में कैसे परिवर्तित कर सकता हूं? उदाहरण के लिए:अंक की सरणी को बाइनरी संख्या

a=[1 0 1 0 1 0] 

मैं एक द्विआधारी संख्या

b=101010

यह छोरों के बिना ऐसा करना संभव है कन्वर्ट करने के लिए चाहते हैं?

+0

जो भी आप करना चाहते हैं, करने के लिए एक स्ट्रिंग-प्रस्तुति का उपयोग करने के बजाय, आप 'बिगेट', 'बिट्ससेट' और 'यहां भी देखें' के तहत वर्णित कार्यों को देखना चाहेंगे। मैंने अभी तक कोई मामला नहीं देखा है, जहां स्ट्रिंग-प्रस्तुति के साथ काम करना वास्तव में जरूरी है, फिर भी लोग हर समय इस तरह की चीजें पूछते हैं। इसके अलावा, तारों के साथ काम धीमा है और अधिक स्मृति खाता है। – sebastian

उत्तर

19

हो सकता है कि यह तुम क्या चाहते है:

char(a+'0') 

उदाहरण:

>> a=[1 0 1 0 1 0] 

a = 

    1  0  1  0  1  0 

>> char(a+'0') 

ans = 

101010 

यह अपने ASCII कोड (+'0') के लिए प्रत्येक संख्या परिवर्तित करने और फिर एक के परिणामस्वरूप संख्या के वेक्टर परिवर्तित करके काम करता है स्ट्रिंग (char())।

+2

एएससीआईआई की विशिष्टताओं पर निर्भर रहने से बचने के लिए, एक विकल्प 'bindig =' 01 'होगा; बिन्डिग (ए + 1) '। –

+3

और यदि गति चिंता का विषय है, तो 'char (a + 48) 'तेज हो सकता है। (ऑक्टेव में दोगुना तेज़) – Dan

+0

+1 बहुत बढ़िया चाल – rayryeng

7

आप एक स्ट्रिंग को रूपांतरित कर सकते हैं:

sprintf('%d',a) 

जो मुझे लगता है Logicals की एक सरणी के लिए एकमात्र विकल्प है।

+1

अच्छा, लेकिन सबसे अच्छा विकल्प नहीं :) –

+0

@EitanT: इस विकल्प के साथ क्या गलत है? – Daniel

+1

@DanielR यह 'char' की तुलना में एक ओवरकिल है। –

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