Горизонтально сцепленный массив ячеек строк - PullRequest
11 голосов
/ 02 февраля 2011

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

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

finish = {'helloworldtest';'joinmeplease'}

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

Ответы [ 3 ]

22 голосов
/ 02 февраля 2011

Существует простой способ сделать это, используя функции NUM2CELL и STRCAT :

>> finish = num2cell(start,1);
>> finish = strcat(finish{:})

finish = 

    'helloworldtest'
    'joinmeplease'
1 голос
/ 02 февраля 2011

Простой способ - слишком циклически проходить по строкам

nRows = size(start,1);
finish = cell(nRows,1);

for r = 1:nRows
    finish{r} = [start{r,:}];
end

EDIT

Более сложное и немного сложнее для чтения решение, которое делает то же самое (общее решение оставлено в качестве упражнения для читателя)

finish = accumarray([1 1 1 2 2 2]',[ 1 3 5 2 4 6]',[],@(x){[start{x}]})

0 голосов
/ 29 сентября 2015

Я думаю, вы хотите, чтобы эти два были объединены в один массив ячеек.Попробуйте использовать этот код, у меня работает.

'x = [{start}, {finish}];'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...