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