how to sort values depending on other vector?
조회 수: 8 (최근 30일)
이전 댓글 표시
if true
% code
x=[0,50,150,100,50,150,0,100,150,0,50,150]
y=[1,2,3,3,2,1,1,2,3,3,2,1]
i want to sort y as 0 to 1, 1 to 2 and 2 to 3
for x 0 to 50 and 50 to 100
댓글 수: 0
답변 (1개)
Steven Lord
2018년 10월 23일
If I understand what you've described correctly, you want to sort y and break ties among elements in y that have the same value based on the corresponding elements of x. Is that right? If so, you can pack the two vectors into a matrix and use sortrows to sort first by the column corresponding to y then by the column corresponding to x. In my sample code below, the y column is column 2 and the x column is column 1 so I sortrows using [2 1].
x = [0,50,150,100,50,150,0,100,150,0,50,150]
y = [1,2,3,3,2,1,1,2,3,3,2,1]
M = [x.', y.']
M2 = sortrows(M, [2 1])
If you need to know which row in M went to which row in M2 (or equivalently which elements in x and y went where in M2) call sortrows with two outputs.
댓글 수: 5
Steven Lord
2018년 10월 23일
how should i code to create 42 vectors?
How are you planning to use that data? I suspect your ultimate goal is not "to sort the values and count it" -- unless this is part of a homework assignment, I expect you want to do something with the sorted data and/or the counts. What is that something?
참고 항목
카테고리
Help Center 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!