代码之家  ›  专栏  ›  技术社区  ›  yuk

MATLAB中单元数组到字符串单元数组的转换

  •  6
  • yuk  · 技术社区  · 16 年前

    使用regexp和字符串单元格数组上的标记,我得到了单元格单元格数组。以下是简化示例:

    S = {'string 1';'string 2';'string 3'};
    res = regexp(S,'(\d)','tokens')
    res = 
    
        {1x1 cell}
        {1x1 cell}
        {1x1 cell}
    res{2}{1}
    ans = 
        '2'
    

    我知道在S中每个单元格字符串只有一个匹配项。如何将此输出转换为矢量形式的字符串单元格数组?

    1 回复  |  直到 16 年前
        1
  •  12
  •   gnovice    16 年前

    问题比你想象的还要严重。您的输出来自 REGEXP 实际上是一个单元格数组 细胞阵列数量 弦乐!是的,三级!以下用途 CELLFUN

    cellArrayOfStrings = cellfun(@(c) c{1},res);
    

    正则表达式 去掉一层,然后用 VERTCAT :

    res = regexp(S,'(\d)','tokens','once');  %# Added the 'once' option
    cellArrayOfStrings = vertcat(res{:});