Strsplit在单元格数组中并连接

时间:2015-09-11 19:03:47

标签: string matlab cell-array

我有一个字符串的单元格数组。它分为两列。第一列包含空格,我想根据空格将其拆分为多个列。第二列有我要删除的换行符。

以下功能ALMOST提供了我想要的东西:

col1 = arrayfun(@(r) [strsplit(allpacks{r,1})],1:rows,'Uni',0).';
col2 = arrayfun(@(r) regexprep(allpacks{r,2},'[\n\r\f]+',''),1:rows,'Uni',0).';
allpacks = [col1, col2];

col2很完美,正是我想要的。

然而,

col1是(行x 1)单元格的单元格数组,每个单元格是一个1x21的单元格字符串数组。我希望col1实际上是一个(行x 21)字符串数组。我觉得我非常接近,但我没有尝试过任何工作。我怎样才能得到我想要的东西?

根据评论,这里是第1列的一些示例数据:

  1 2015-09-03 08:02:15.067342000 0.000000000 0.000000000   172.24.2.2 -> 172.24.2.34  Modbus/TCP 64    query: trans: 12289; unit:  42, func:   4: Read Input Registers

我想要每个"字"在这个字符串中,它是单元格数组中自己的列。注意有20个单词"但它出现在21,因为最初的空间最终从strsplit获得了自己的列。

1 个答案:

答案 0 :(得分:1)

以下应该做你想做的事:

%// example data
rows = 5;
col1 = repmat({num2cell(1:26)},rows,1)
col2 = num2cell(1:rows).' %'

%// output
allpacks = [vertcat(col1{:}), col2];