मैं (है, जो एक दूसरे के बगल में हैं, क्योंकि यह वर्णमाला है) डुप्लिकेट के बहुत सारे के साथ, तार का एक बड़ा वर्णानुक्रम सेल सरणी (~ 495 हजार) की है।स्ट्रिंग मिलान (MATLAB रास्ता)
किसी दिए गए लुक-अप स्ट्रिंग के लिए, मैं सूची में सभी श्रृंखलाएं जिनमें एक मैं में पारित की पूर्ति करेंगे खोजने की जरूरत है।
मैं strcmp(lookUpString,list)
उपयोग कर रहे हैं यह करने के लिए, लेकिन यह बेहद धीमी गति से है - मुझे लगता है कि यह तुलना में सूची में प्रत्येक मान के माध्यम से जा रहा है, क्योंकि यह नहीं जानता कि यह वर्णानुक्रम में क्रमबद्ध है।
मैं strcmp
का उपयोग करके प्रत्येक स्ट्रिंग की तुलना करने के लिए सूची के माध्यम से फिर से लिखने के लिए थोड़ी देर लूप लिख सकता हूं जब तक कि मुझे स्ट्रिंग्स (और फिर रुकें) के ब्लॉक को न मिल जाए, लेकिन मैं सोच रहा था कि क्या "matlab" तरीका करने का तरीका है यह (यानी एक क्रमबद्ध सरणी पर तार्किक तुलना संचालन प्रदर्शन)।
आपकी मदद के लिए धन्यवाद!
MATLAB का आप किस संस्करण का उपयोग कर रहे हैं? मेरा, उनमें से एक के लिए खोज का उपयोग कर strcmp यह 0.024816 सेकंड लेता है जब मैं 400K 100 अक्षर यादृच्छिक तार के एक सेल सरणी बनाया है और में। यह वास्तव में एक एमईएक्स फ़ाइल है। मैं 2011 ए का उपयोग कर रहा हूँ। – user930916