Sorting element pairs by differences?
이전 댓글 표시
Suppose values is a vector, how to produce a matrix whose rows contain pairs of elements of this vector, ordered ascending by the differences between the elements.
For example:
values = [1,2,1.5,1.9]
I want the matrix
differences = [1.9 2; 1.5 1.9; 1 1.5; 1.5 2; 1 1.9; 1 2]
채택된 답변
추가 답변 (2개)
Massimo Zanetti
2016년 10월 7일
3 개 추천
More elegant is to use pdist, that does the bad job..
Jos (10584)
2016년 10월 7일
1 개 추천
Take a look at NCHOOSEK, ABS, DIFF, and SORT:
- with X = nchoosek(values,2) you can get all the 6 different combinations
- use Y = abs(diff(X)) to get the absolute differences
- the second output of the function sort, applied tot these latter values, can be uses to sort the combinations accordingly.
카테고리
도움말 센터 및 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!