Добавление подстроки в каждую строку в строке в MATLAB - PullRequest
1 голос
/ 18 января 2012

Скажем, у меня есть строка в переменной в MATLAB, как показано ниже:

this is the first line 
this is the second line 
this is the third line

Я хотел бы добавить фиксированную строку в начале каждой строки. Например:

add_substring(input_string, 'add_this. ') 

будет выводить:

add_this. this is the first line 
add_this. this is the second line 
add_this. this is the third line

Я знаю, что могу сделать это, перебрав входную строку, но я ищу более компактный (надеюсь, векторизованный) способ сделать это, возможно, с использованием одной из встроенных команд MATLAB, таких как arrayfun accumarray.

Ответы [ 2 ]

6 голосов
/ 18 января 2012

Функция strcat - это то, что вы ищете.Он выполняет векторизованную конкатенацию строк.

strs = {
    'this is the first line'
    'this is the second line'
    'this is the third line'
    }
strcat({'add_this. '}, strs)

С помощью strcat вам нужно поместить 'add_this. ' в ячейку ({}), чтобы защитить ее от удаления пробелов в конце, что является нормальным длявводы символов.

0 голосов
/ 18 января 2012

Если ваши строки хранятся в массиве ячеек, то cellfun будет делать то, что вы хотите, например,

s = {'this is the first line', 'this is the second line', 'this is the third line'};
prefix = 'add_this. ';
res = cellfun(@(str) strcat(prefix, str), s, 'UniformOutput', false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...