我有许多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', ';');
等。任何有关如何执行此操作的反馈将不胜感激。
答案 0 :(得分:1)
希望这可以解决您的问题:
% 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
答案 1 :(得分:0)
您拥有的每个单元格都不是字符串,因此您无法使用strsplit
。使用这种方法:
for ii = length(X) % Here X denotes your 33213168x1 cell array
X{ii} = cell2mat(cellfun(@(y) y.', X{ii}, 'UniformOutput', false));
end