水平连接字符串的单元格数组

时间:2011-02-01 22:46:11

标签: matlab

我希望水平连接字符串单元格数组的行,如下所示。

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

finish = {'helloworldtest';'joinmeplease'}

是否有任何内置函数可以完成上述转换?

3 个答案:

答案 0 :(得分:22)

使用NUM2CELLSTRCAT函数可以轻松实现非循环方式:

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

finish = 

    'helloworldtest'
    'joinmeplease'

答案 1 :(得分: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 :(得分:-1)

我认为你想要的是这两个被连接成一个单元格数组。尝试使用此代码,适合我。

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