将Cell Array转换为Matrix

时间:2016-01-21 12:48:22

标签: matlab

我有一个混合数据类型的单元格数组:ID,这是一个字符串,其余的是数字。我使用cell2mat()但它没有用。我还尝试将ID从单元格中分离然后转换,但收到的错误是它只有一个维度。

数据的样本是:

ID            A       B     C       K         L
'A_P66027'  6.49    6.48    6.4     6.404   6.2508
'B_P77178'  5.92    6.47    6.68    6.404   6.661
'K_P212522' 8.49    8.54    9.36    8.901   9.35
'C_P934473' 5.81    5.91    5.79    5.792   5.823
'L_P9671'   11.52   11.63   12.28   11.956  11.481

如何将此单元格数组转换为矩阵?

A是我的手机,所以我试过了:

B=cell2mat(A);  % it does not work.
Id=A(:,1);
C=cell2mat(Id);  % also does not work ?

1 个答案:

答案 0 :(得分:1)

弃掉第一栏:

foo = {'A_P66027'  6.49    6.48    6.4     6.404   6.2508; ...
'B_P77178'  5.92    6.47    6.68    6.404   6.661; ...
'K_P212522' 8.49    8.54    9.36    8.901   9.35; ...
'C_P934473' 5.81    5.91    5.79    5.792   5.823; ...
'L_P9671'   11.52   11.63   12.28   11.956  11.481 };

cell2mat( foo(:, 2:end) );

编辑:如果包含标题(也丢弃第一行):

foo2 = {
'ID',       'A',    'B',    'C',    'K',    'L'; ...
'A_P66027'  6.49    6.48    6.4     6.404   6.2508; ...
'B_P77178'  5.92    6.47    6.68    6.404   6.661; ...
'K_P212522' 8.49    8.54    9.36    8.901   9.35; ...
'C_P934473' 5.81    5.91    5.79    5.792   5.823; ...
'L_P9671'   11.52   11.63   12.28   11.956  11.481 };

cell2mat( foo2(2:end, 2:end) );