Подтвердить что ты не робот

Горизонтально конкатенировать массив ячеек строк

Я хочу горизонтально конкатенировать строки массива ячеек строк, как показано ниже.

start = {'hello','world','test';'join','me','please'}

finish = {'helloworldtest';'joinmeplease'}

Существуют ли встроенные функции, которые выполняют вышеуказанное преобразование?

4b9b3361

Ответ 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}];'