Горизонтально конкатенировать массив ячеек строк
Я хочу горизонтально конкатенировать строки массива ячеек строк, как показано ниже.
start = {'hello','world','test';'join','me','please'}
finish = {'helloworldtest';'joinmeplease'}
Существуют ли встроенные функции, которые выполняют вышеуказанное преобразование?
Ответы
Ответ 1
Простым способом является слишком цикл над строками
nRows = size(start,1);
finish = cell(nRows,1);
for r = 1:nRows
finish{r} = [start{r,:}];
end
ИЗМЕНИТЬ
Более сложное и немного сложное для чтения решение, которое делает то же самое (общее решение остается как упражнение для читателя)
finish = accumarray([1 1 1 2 2 2]',[ 1 3 5 2 4 6]',[],@(x){[start{x}]}
)
Ответ 2
Существует простой способ без петли, который вы можете сделать, используя функции NUM2CELL и STRCAT:
>> finish = num2cell(start,1);
>> finish = strcat(finish{:})
finish =
'helloworldtest'
'joinmeplease'
Ответ 3
Я думаю, вы хотите, чтобы эти два были объединены как один массив ячеек. Попробуйте использовать этот код, работает для меня.
'x = [{start}, {finish}];'