sortrows with cell array
3 ビュー (過去 30 日間)
古いコメントを表示
BULK_LIST = sortrows(BULK_LIST, [1 5 2 3 4 6]);
Outputs:
'BULK' 'ED' '2011' '12' 'Default' 'B' '18'
'BULK' 'ED' '2011' '9' 'Default' 'S' '18'
'BULK' 'ES' '2011' '3' 'Default' 'S' '1'
'BULK' 'FFI' '2011' '3' 'Default' 'S' '1'
'BULK' 'LGO' '2011' '3' 'Default' 'S' '1'
'1020' 'ED' '2011' '12' 'Default' 'B' '18'
'1020' 'ED' '2011' '9' 'Default' 'S' '18'
'1020' 'ES' '2011' '3' 'Default' 'S' '1'
'1020' 'FFI' '2011' '3' 'Default' 'S' '1'
'1020' 'LGO' '2011' '3' 'Default' 'S' '1'
Desired Output:
'BULK' 'ED' '2011' '9' 'Default' 'S' '18'
'BULK' 'ED' '2011' '12' 'Default' 'B' '18'
'BULK' 'ES' '2011' '3' 'Default' 'S' '1'
'BULK' 'FFI' '2011' '3' 'Default' 'S' '1'
'BULK' 'LGO' '2011' '3' 'Default' 'S' '1'
'1020' 'ED' '2011' '9' 'Default' 'S' '18'
'1020' 'ED' '2011' '12' 'Default' 'B' '18'
'1020' 'ES' '2011' '3' 'Default' 'S' '1'
'1020' 'FFI' '2011' '3' 'Default' 'S' '1'
'1020' 'LGO' '2011' '3' 'Default' 'S' '1'
It appears that sortrows, when looking at '12' and '9' sorts off of the 1 in '12' and doesn't treat it as a 12.
How do I fix this?
0 件のコメント
採用された回答
Oleg Komarov
2012 年 3 月 23 日
Convert the string of numbers to doubles.
bulk_list = {'BULK' 'ED' '2011' '12' 'Default' 'B' '18'
'BULK' 'ED' '2011' '9' 'Default' 'S' '18'
'BULK' 'ES' '2011' '3' 'Default' 'S' '1'
'BULK' 'FFI' '2011' '3' 'Default' 'S' '1'
'BULK' 'LGO' '2011' '3' 'Default' 'S' '1'
'1020' 'ED' '2011' '12' 'Default' 'B' '18'
'1020' 'ED' '2011' '9' 'Default' 'S' '18'
'1020' 'ES' '2011' '3' 'Default' 'S' '1'
'1020' 'FFI' '2011' '3' 'Default' 'S' '1'
'1020' 'LGO' '2011' '3' 'Default' 'S' '1'}
bulk_list(:,[3:4, 7]) = cellfun(@str2double , bulk_list(:,[3:4, 7]),'un',0)
Then do the sorting.
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!