使用for循环连接多个单元格数组?

时间:2014-02-13 23:27:30

标签: arrays matlab concatenation cell-array

我有一个包含750个“文档”的单元格数组(单个单元格数组中有750个单词数组)。我试图连接所有单词来制作一个单独的数组。 到目前为止,我知道我需要使用for循环遍历每个数组并追加到最后一个数组的末尾,但是我的代码给出了错误的答案:

list = cell(1,1);
    for i = 1:length(docs)
   prevList = list;
    list = [prevList;docs{i}];
end

我的想法是我的列表初始化不正确,因为它产生:

    [1x1635 char]
    [1x1476 char]
    [1x531  char]
    [1x103  char]
    [1x1725 char]
    [1x344  char]
    [1x463  char]
    [1x739  char]
    [1x762  char]
    [1x1139 char]
    [1x89   char]
    [1x361  char]
    [1x334  char]
    [1x520  char]
    [1x219  char]
and so forth...

而不是单词列表。

如果有人能帮助我,我会非常感激。

2 个答案:

答案 0 :(得分:2)

不需要for循环。让我们用一个小例子:

str1 = 'The quick brown ';
str2 = 'fox jumped over the ';
str3 = 'lazy dog. '
docs = {str1;str2;str3} % Your cell array containing arrays of text in each row

docs_cat = [docs{:}] % Concatenate

返回:

docs_cat =

The quick brown fox jumped over the lazy dog. 

答案 1 :(得分:0)

我不知道是否有更快的附加解决方案,但您应该能够执行以下操作:

list = prevList;
prevLength = length(list);
for i=1:length(docs)
    list{prevLength+i} = docs{i}
end

在分配期间'prevLength + i'超出范围并不重要。