我有一个100x3
单元格数组,每个元素都是一个字符串。现在我希望根据第1栏进行排序。我可以很容易地做到这一点
sorted1 = sortrows(data, 1);
但是,我不想在这里停下来。我希望根据第二栏进一步排序。当然,这种排序不能破坏第一次排序。换句话说,它非常类似于字典的排序方式。
我怎么能这样做?
答案 0 :(得分:5)
sortrows
会继续按其他列排序,如果您也指定它们:
>> data = {'banana','blue','cow';
'zebra','ape','frog';
'banana', 'apple', 'pear';
'banana', 'apple', 'orange'};
>> sorted1 = sortrows(data, 1)
sorted1 =
'banana' 'blue' 'cow'
'banana' 'apple' 'pear'
'banana' 'apple' 'orange'
'zebra' 'ape' 'frog'
>> sorted1 = sortrows(data, [1 2])
sorted1 =
'banana' 'apple' 'pear'
'banana' 'apple' 'orange'
'banana' 'blue' 'cow'
'zebra' 'ape' 'frog'
请注意,通过使用[1 2]
排除第3列,不会浪费时间按第3列排序('pear'
仍然在'orange'
之前)。