2011-04-06 37 views
5

मेरे पास वर्णों का चार सरणी (वेक्टर) है और मैं विशिष्ट क्रम में सफेद रिक्त स्थान डालना चाहता हूं।चार सरणी में सफेद रिक्त स्थान डालें

उदाहरण के लिए मैं

['A','B','C','D','E','F','G','H','J','K','L','M','N','O'] 

और साथ वेक्टर सफेद रिक्त स्थान

[7 12] % white spaces should be add to 7 and 12 indexes (original string) 

की अनुक्रमणिका है और

['A','B','C','D','E','F',' ','G','H','J','K', 'L', ' ','M','N','O'] 

करना चाहते हैं वहाँ कुछ निर्माण में समारोह है? मैंने नेस्टेड लूप के साथ सरणी को फिर से शुरू करने और '' 'शुरू करने के लिए शुरुआत की, लेकिन यह बदसूरत लग रहा है।

+0

आप कैसे पहचानते हैं कि रिक्त स्थान कहां जाना चाहिए? * आउटपुट सरणी * के लिए सूचकांक का एक सेट? * इनपुट सरणी * के लिए रिक्त स्थान जोड़ने के लिए सूचकांक का एक सेट? – gnovice

+0

मेरे पास इंडेक्स की एक सरणी है [7, 12 .... और मैं वहां सफेद जगह डालना चाहता हूं और बाकी स्ट्रिंग " –

उत्तर

5

आप अपने वेक्टर जहाँ आप चाहते हैं रिक्त स्थान सम्मिलित करने के लिए में सूचकांक होते हैं, तो आप निम्न कर सकता है:

>> str = 'ABCDEFGHJKLMNO';    %# Your string 
>> index = [7 12];      %# Indices to insert blanks 
>> index = index+(0:numel(index)-1);  %# Adjust for adding of blanks 
>> nFinal = numel(str)+numel(index);  %# New length of result with blanks 
>> newstr = blanks(nFinal);    %# Initialize the result as blanks 
>> newstr(setdiff(1:nFinal,index)) = str %# Fill in the string characters 

newstr = 

ABCDEF GHJKL MNO 
+0

thx" क्षैतिज रूप से स्थानांतरित करना चाहता हूं लेकिन यह वही नहीं है जो मैं चाहता था, शायद मैं नहीं था स्पष्ट है। यह 7 सही ढंग से रखता है, लेकिन 12 इंडेक्स को एक स्पेस के साथ नई सरणी के रूप में लिया जाता है - एबीसीडीईएफ जीएचजेकेएल एमएनओ होना चाहिए। –

+0

@ लुकास: मैंने अपना जवाब अपडेट कर लिया है, इसलिए इसे अब आपके लिए काम करना चाहिए। आपको शायद संपादित करना चाहिए अपनी इंडेक्सिंग योजना के बारे में अतिरिक्त जानकारी जोड़ने के लिए प्रश्न। – gnovice

+0

भयानक। मुझे इसके लिए इसकी आवश्यकता है http://stackoverflow.com/questions/5558005/simple-text-reader-ocr-in-matlab/5572667#5572667 –

2

आप विशिष्ट सूचकांक में अंतराल डाल करना चाहते हैं?

chars = ['A','B','C','D','E','F','G','H','J','K','L','M','N','O']; 
%insert space after index 6 and after index 10 in chars 
charsWithWhitespace = [chars(1:6), ' ', chars(7:10), ' ', chars(11:end)]; 
+0

यह काम करता है विशिष्ट उदाहरण, लेकिन यह सूचकांक के मनमानी सेट के लिए सामान्य कैसे होगा? – gnovice

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