【问题标题】:separating cell array into several columns MATLAB将元胞数组分成几列MATLAB
【发布时间】:2017-07-25 16:50:14
【问题描述】:

我有一个包含一列的元胞数组。每行仅包含一列。每个单元格由一个字符串组成。如何通过基于空格分隔字符串将单元格数组中一列的内容分成几列。每个字符串都有不同的长度。示例:

cellArrayM= {
  'hh pp'
  'my 2 ewr 3234 csdf'
  'input l 34'
  'output K 99 100'
 }

result={
   'hh'     'pp' []    []     []
   'my'     '2' 'ewr' '3234' 'csdf'
   'input'  'l' '34'  []      []
   'output' 'k' '99'  '100'   []
         }

【问题讨论】:

  • doc regexpcellfun
  • 如果可能的话,你能给我举个例子吗

标签: matlab split cell-array


【解决方案1】:

你可以这样做:

x = cellfun(@(x) strsplit(x), cellArrayM, 'uniformoutput', 0);
result = cell(numel(x), max(cellfun(@numel, x)));
for k = 1:numel(x)
    result(k, 1:numel(x{k})) = x{k};
end

【讨论】:

  • 这个功能不错,但是数组很大的时候很慢。有没有办法让它更快? @路易斯·门多
  • 我想不出来。使用细胞通常很慢
【解决方案2】:

你可以这样做:

splitCellArray = regexp(cellArrayM,' ','split')

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多