Alphanumeric sorting of data

조회 수: 15 (최근 30일)
Prathamesh Halagi
Prathamesh Halagi 2021년 1월 19일
댓글: Prathamesh Halagi 2021년 1월 25일
Hello,
I have data which is extracted from various excel fiels in a folder. I want to sort the data based on the data in the first column. The issue is the data in this column is for ex, '10000 Rest', '3200 Rest', '2000 Rest', etc.. I need the data to be in ascending form. The output I receive is '10000 Rest', '2000 Rest', '3200 Rest', etc. The required output for me is '2000 Rest', '3200 Rest', '10000 Rest'.. etc.
Is there a way to change the sorting type.
Thanks

채택된 답변

Rishabh Mishra
Rishabh Mishra 2021년 1월 22일
편집: Rishabh Mishra 2021년 1월 22일
Hi,
Based on my understanding of the issue, I suggest you to implement the 'sort_nat' function. The function is used to sort array of strings in natural alphabetcial order. I have added a reference example code below to demonstrate the use of sort_nat function.
arr = {'10000 Rest','3200 Rest','2000 Rest'};
sort_nat(arr);
Hope this helps!
  댓글 수: 4
Walter Roberson
Walter Roberson 2021년 1월 25일
편집: Walter Roberson 2021년 1월 25일
Can the alphabetic part always be ignored for sorting purposes? For example, no "2000 Checkpoint" along with "2000 Rest" ?
[~, idx] = sort(arrayfun(@(S) sscanf(S, '%d', 1), ds_2.Var1));
Prathamesh Halagi
Prathamesh Halagi 2021년 1월 25일
Yes, I think it can be ignored as all data has number followed by REST.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by