在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);
答案 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]