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

Matlab- split cell array column by delimiter

我有许多 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]

我尝试了很多方法来解决这个问题,但最常见的是错误 'cell elements must be character arrays' 或 'input must be a string.'

我尝试过的一些方法:

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', ';');

等任何有关如何执行此操作的反馈都将不胜感激。

希望这能解决您的问题:

% 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

您拥有的每个单元格都不是字符串,因此您不能使用 strsplit。使用这种方法:

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