how to sort values depending on other vector?
古いコメントを表示
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
回答 (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 件のコメント
Shubham Mohan Tatpalliwar
2018 年 10 月 23 日
Steven Lord
2018 年 10 月 23 日
What is your ultimate goal here? Can you describe your overall application?
Are you trying to count how many elements in Achsemoment fall into each bin? If so use histcounts.
Are you trying to identify into which bin each element falls? That's the third output from histcounts or the first output from discretize.
Shubham Mohan Tatpalliwar
2018 年 10 月 23 日
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?
Shubham Mohan Tatpalliwar
2018 年 10 月 23 日
編集済み: Shubham Mohan Tatpalliwar
2018 年 10 月 23 日
カテゴリ
ヘルプ センター および 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!