我将单元格数组中的数据设为shown in the variable viewer here:
{[2.13949546690144;56.9515770543056],
[1.98550875192835;50.4110852121618],
...}
我想将其拆分为两列,其中包含两个小数点数字:
2.13 56.95
1.98 50.41
删除括号和分号,例如[;]
(与Excel中的“Text to columns”类似)。
答案 0 :(得分:1)
如果您的N元素单元格数组C
在每个单元格中都有2 x 1数字数据,您可以轻松地将其转换为N-by-2数字矩阵M
,如此(使用round
函数将每个元素舍入为2位有效数字):
M = round([C{:}].', 2);
语法C{:}
创建C
内容comma-separated list,相当于C{1}, C{2}, ... C{N}
。这些都是horizontally concatenated使用[ ... ]
,结果是transposed使用.'
。
答案 1 :(得分:0)
% let's build a matching example...
c = cell(2,1);
c{1} = [2.13949546690144; 56.9515770543056];
c{2} = [1.98550875192835; 50.4110852121618];
% convert your cell array to a double array...
m = cell2mat(c);
% take the odd rows and place them to the left
% take the even rows and place them to the right
m = [m(1:2:end,:) m(2:2:end,:)];
% round the whole matrix to two decimal digits
m = round(m,2);
根据您的环境设置,您可能仍会在前两位小数后看到很多尾随零...但不要担心,一切正常(从精确的角度来看)。如果您只想显示数字的“真实”数字,请使用以下命令:
format short g;
答案 2 :(得分:-2)
你应该使用cell2mat
A={2.14,1.99;56.95,50.41};
B=cell2mat(A);
至于四舍五入,你可以这样做:
B=round(100*B)/100;