将元胞数组或字符串合并为一个 space 分隔的字符串

Combine a cell array or strings into a single space separated string

如何将单元格数组中的单元格组合成一个单元格?例如:

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

进入 1 个单元格

a = 'I am a noob in matlab'

注意 下面 Luis Mendo 对 strjoin 的回答显然更好,但是我不能删除它,因为它是公认的答案。


首先你需要添加一行space个字符:

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

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

[a{:}]

ans = 

I am a noob in matlab

请注意,这是可行的,因为 Maltab 是 column-major,这就是为什么当您 "linearize" 使用 : 运算符的矩阵时,它先沿着列向下移动,然后再穿过行.

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

最后要注意的是,您要求将答案放在一个 单元格 中,但我给了您一个字符数组。如果你真的想把它放在一个单元格中,我相信你不会,那么这样做:

{[a{:}]}

strjoin 正是这样做的:

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