如何在 MATLAB 中将元胞数组值拆分为两列?
How to split cell array values into two columns in MATLAB?
我在元胞数组中有数据 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" 那样做)。
你应该使用 cell2mat
A={2.14,1.99;56.95,50.41};
B=cell2mat(A);
关于四舍五入,你可以这样做:
B=round(100*B)/100;
% 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);
根据您的环境设置,您可能仍会在前两位小数后看到很多尾随零...但别担心,一切正常(从精度的角度来看)。如果您只想显示号码的 "real" 位,请使用此命令:
format short g;
如果您的 N 元素元胞数组 C
在每个元胞中都有 2×1 数值数据,您可以像这样轻松地将其转换为 N×2 数值矩阵 M
(使用 round
函数将每个元素四舍五入为 2 位有效数字):
M = round([C{:}].', 2);
语法 C{:}
使用 .'
创建 comma-separated list of the contents of C
, equivalent to C{1}, C{2}, ... C{N}
. These are all horizontally concatenated using [ ... ]
, then the result is transposed。
我在元胞数组中有数据 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" 那样做)。
你应该使用 cell2mat
A={2.14,1.99;56.95,50.41};
B=cell2mat(A);
关于四舍五入,你可以这样做:
B=round(100*B)/100;
% 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);
根据您的环境设置,您可能仍会在前两位小数后看到很多尾随零...但别担心,一切正常(从精度的角度来看)。如果您只想显示号码的 "real" 位,请使用此命令:
format short g;
如果您的 N 元素元胞数组 C
在每个元胞中都有 2×1 数值数据,您可以像这样轻松地将其转换为 N×2 数值矩阵 M
(使用 round
函数将每个元素四舍五入为 2 位有效数字):
M = round([C{:}].', 2);
语法 C{:}
使用 .'
创建 comma-separated list of the contents of C
, equivalent to C{1}, C{2}, ... C{N}
. These are all horizontally concatenated using [ ... ]
, then the result is transposed。