Вставьте пробелы в массив символов - PullRequest
5 голосов
/ 06 апреля 2011

У меня есть массив символов (вектор) символов, и я хочу вставить пробелы в определенном порядке.

Например, у меня есть

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

Есть ли встроенная функция? Я начал с вложенного цикла, чтобы исказить массив и вставить '', но это выглядит ужасно.

Ответы [ 2 ]

5 голосов
/ 06 апреля 2011

Если у вас есть индексы в ваш вектор, куда вы хотите вставить пробелы, вы можете сделать следующее:

>> 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
2 голосов
/ 06 апреля 2011

Вы хотите вставить пробелы в определенные индексы?

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)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...