How to sort a vector based on the absolute difference of the sorted vector
2 views (last 30 days)
Show older comments
Baththama Alhassan
on 14 Dec 2021
Commented: Baththama Alhassan
on 20 Dec 2021
Example: a= [2,3,6,12,7,18,25,0,28,5]
b= [0,2,3,5,6,7,12,18,25,28]
absolutediffofb=[2,1,2,1,1,5,6,7,3]
arrangeb=[(2,3)(5,6)(6,7)(0,2)(3,5)(25,28)(7,12)(12,18)(18,25)]
2 Comments
Awais Saeed
on 14 Dec 2021
It is not clear what you are trying to do? How do you read 'arrangeb'? Show us what have you tried and what issues are you facing.
Accepted Answer
David Goodmanson
on 14 Dec 2021
Hi Awais,
a= [2,3,6,12,7,18,25,0,28,5]
b = sort(a)' % column vector
c = [b(1:end-1) b(2:end)];
d = [diff(c,[],2) c];
e = sortrows(d)
e =
1 2 3
1 5 6
1 6 7
2 0 2
2 3 5
3 25 28
5 7 12
6 12 18
7 18 25
The ordered pairs are in columns 2 and 3. Some format like this is necessary since
[(2,3)(5,6)(6,7)(0,2)(3,5)(25,28)(7,12)(12,18)(18,25)]
is not part of Matlab syntax.
3 Comments
Image Analyst
on 15 Dec 2021
Where is "arrangeb"? It looks like you might be missing this:
arrangeb = e(:, 2:3);
More Answers (0)
See Also
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!