将单元格数组或字符串组合成单个空格分隔的字符串

时间:2015-10-21 08:30:20

标签: string matlab cell-array

如何组合单元格数组中的单元格以形成单个单元格?例如:

a = {'I', 'am', 'a', 'noob', 'in', 'matlab'}

进入1个单元格

a = 'I am a noob in matlab'

2 个答案:

答案 0 :(得分:6)

strjoin正是如此:

>> a = {'I', 'am', 'a', 'noob', 'in', 'matlab'}
a = 
    'I'    'am'    'a'    'noob'    'in'    'matlab'
>> strjoin(a)
ans =
I am a noob in matlab

答案 1 :(得分:4)

注意路易斯·门多对strjoin下面的回答显然更好,但我不能删除它,因为这是接受的答案。

首先,您需要添加一行空格字符:

a = {'I', 'am', 'a', 'noob', 'in', 'matlab'}
a(2,:) = {' '}

现在您可以使用{:}操作来获取以逗号分隔的列表和[]操作来连接这些:

[a{:}]

ans = 

I am a noob in matlab

请注意,这是因为Maltab是column-major,这就是为什么当您使用:运算符“线性化”矩阵时,它会在遍历行之前首先按下列。

另请注意,此方法存在轻微缺陷,因为它会在结果的末尾添加一个额外的空格字符。所以你可能想要trim它。

最后要注意的是,您要求答案位于一个单元格中,但我给了您一个char数组。如果你真的想要它在一个单元格,我相信你没有,那么这样做:

{[a{:}]}