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

Matlab-按分隔符拆分单元格数组列

  •  0
  • user5858  · 技术社区  · 7 年前

    我有许多33213168x1单元阵列,其中每个单元包含一个85 x 1列。

    列中的每个单元格都在表单中

    [0.55;0.25;0.75]
    
    [0.33;0.66;0.99]
    

    我想用分号分隔符拆分这一列,这样单元格数组中的每个单元格都是85x3,如:

    [0.55][0.25][0.75]
    
    [0.33][0.66][0.99]
    

    我尝试了许多技术来解决这个问题,但最常见的错误是“单元格元素必须是字符数组”或“输入必须是字符串”

    我尝试过的一些方法:

    splitcells = strsplit(regress_original_053108,';');
    splitcells = cellfun(@(x) strsplit(regress_original_053108, ';'),regress_original_053108 , 'UniformOutput',0);
    splitcells = regexp(regress_original_053108, ';', 'split');
    splitcells = textscan(regress_original_053108, 'delimiter', ';');
    

    如有任何关于如何做到这一点的反馈,我们将不胜感激。

    2 回复  |  直到 7 年前
        1
  •  1
  •   S. Meier    7 年前

    希望这能解决您的问题:

    % Example input
    input = {[0.55;0.25;0.75]};
    cellArray(1:85,1) = input;
    
    % Create array
    doubleArray = zeros(85,3);
    
    % Fill array
    for i=1:85
       doubleArray(i,:) =  cellArray{i,1}';
    end
    
        2
  •  0
  •   ammportal    7 年前

    strsplit . 使用此方法:

    for ii = length(X) % Here X denotes your 33213168x1 cell array
        X{ii} = cell2mat(cellfun(@(y) y.', X{ii}, 'UniformOutput', false));
    end