将一个单元格的列(数字)从数字转换为字符串

时间:2014-11-09 17:53:52

标签: matlab sorting cell-array

在Matlab中,我有一个问题,我想在一列数字中对一个单元格进行排序。但是sortrows函数不起作用(我得到这个错误:X中的一些单元格包含非标量值而无法排序)。我怀疑我需要将数字列转换为字符串类型。

所以我的问题是如何只将单元格的1列转换为字符串类型?

编辑:

前4行单元格:

cell_1 = {' 1996Q1' 0.009  0.009  54594;
          ' 1996Q2' 0.011  0.013  54594;
          ' 1996Q3' 0.010  0.010  54594}

[K,I]=sortrows(cell_1,4);

1 个答案:

答案 0 :(得分:0)

您只能grep要使用的列,并在数字上下文中对其进行排序。请参见下面的示例(我更改了第四列中的值以显示效果)。

cell_1 = {' 1996Q1' 0.009  0.009  54594;
          ' 1996Q2' 0.011  0.013  54592;
          ' 1996Q3' 0.010  0.010  54593};

[~,ind] = sort([cell_1{:,4}])

ind =

     2     3     1

cell_2 = cell_1(ind,:)

cell_2 = 

    ' 1996Q2'    [1.1000e-002]    [1.3000e-002]    [54592]
    ' 1996Q3'    [1.0000e-002]    [1.0000e-002]    [54593]
    ' 1996Q1'    [9.0000e-003]    [9.0000e-003]    [54594]