2011-04-06 87 views
5

我有字符的char數組(向量),我想按特定順序插入空格。在char數組中插入空格

比如我有空格

[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'] 

和矢量與索引,並希望有

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

有一些內置的功能?我開始使用嵌套循環來訪問數組,並且堅持'',但它看起來很醜。

+0

你如何確定空白應該去哪裏? *輸出數組*的一組索引? *輸入數組*的一組索引,用於在後面添加空白符號? – gnovice 2011-04-06 17:43:04

+0

我有一個索引數組[7,12 ....我想把空白空間和「移動水平」字符串的其餘部分「 – 2011-04-06 17:46:15

回答

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個索引從新的陣列中取出並留出空間 - 應該是ABCDEF GHJKL MNO。 – 2011-04-06 20:21:23

+0

@lukas:我已經更新了我的答案,所以現在它應該適用於您。問題添加額外的詳細信息關於您的索引方案。 – gnovice 2011-04-06 20:27:26

+0

真棒。我需要它爲此http://stackoverflow.com/questions/5558005/simple-text-reader-ocr-in-matlab/5572667#5572667 – 2011-04-06 20:42:01

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 2011-04-06 17:49:35