元胞数组中的 Strsplit 并连接
Strsplit within cell array and concatenate
我有一个字符串元胞数组。它分为两列。第一列包含whitespace,我想根据whitespace拆分成多列。第二列有我要删除的换行符。
以下函数几乎可以满足我的需求:
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
我希望此字符串中的每个 "word" 都是元胞数组中它自己的列。请注意,有 20 个 "words" 但结果为 21,因为初始的 space 最终从 strsplit.
中获得了自己的列
下面应该做你想做的:
%// example data
rows = 5;
col1 = repmat({num2cell(1:26)},rows,1)
col2 = num2cell(1:rows).' %'
%// output
allpacks = [vertcat(col1{:}), col2];
我有一个字符串元胞数组。它分为两列。第一列包含whitespace,我想根据whitespace拆分成多列。第二列有我要删除的换行符。
以下函数几乎可以满足我的需求:
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
我希望此字符串中的每个 "word" 都是元胞数组中它自己的列。请注意,有 20 个 "words" 但结果为 21,因为初始的 space 最终从 strsplit.
中获得了自己的列下面应该做你想做的:
%// example data
rows = 5;
col1 = repmat({num2cell(1:26)},rows,1)
col2 = num2cell(1:rows).' %'
%// output
allpacks = [vertcat(col1{:}), col2];