我有一个由几个字符串组成的单元格数组
names = {'2name_19surn', '3name_2surn', '1name_2surn', '10name_1surn'}
我想根据前缀编号对它们进行排序。
我试过了
[~,index] = sortrows(names.');
sorted_names = names(index);
但是我明白了
sorted_names = {'10name_1surn', '1name_2surn', '2name_19surn', '3name_2surn'}
而不是期望的
sorted_names = {'1name_2surn', '2name_19surn', '3name_2surn','10name_1surn'}
有什么建议吗?
使用正则表达式的简单方法:
r = regexp(names,'^\d+','match'); %// get prefixes
[~, ind] = sort(cellfun(@(c) str2num(c{1}), r)); %// convert to numbers and sort
sorted_names = names(ind); %// use index to build result
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句