how to arrange vectors in descending order?

14 views (last 30 days)
Sadiq Akbar
Sadiq Akbar on 12 Oct 2020
Commented: Sadiq Akbar on 12 Oct 2020
I have 100 vectors of size 100x8 each as is given in the attachment. I want to arrange them in descending order row-wise only.i.e. the elements of each vector should not be changed but they must be arranged in descending order only. say for example if I have two vectors as given below:
v1=[1 2 3 4 5 6 7 8]
v2=[2 3 4 5 6 7 8 9]
Then they must be arranged in descending order like
v2=[2 3 4 5 6 7 8 9] % bigger vector 1st
v1=[1 2 3 4 5 6 7 8] % smallerr vector next
In my excel file given in attachement, assume that all these vectors are stored in a matrix called ErrorVectors.
  1 Comment
Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam on 12 Oct 2020
First you should have a criteria for comparing two vectors like sum of errors or sum of square of errors.

Sign in to comment.

Answers (2)

Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam on 12 Oct 2020
% read matrix into A then
%
sumError = sum(A.^2,2);
% sort the total error
[~, ind] = sort(sumError,'descend')
Asorted = A(ind,:)
  1 Comment
Sadiq Akbar
Sadiq Akbar on 12 Oct 2020
Thank you very much dear KSSV and Asad (Mehrzad) Khoddam. I ran the programs of both of you, but they changes the contents of the vector also.
Then I found solution on below URL and it worked.
URL:https://www.mathworks.com/matlabcentral/answers/96995-how-can-i-sort-the-rows-of-a-matrix-in-descending-order-in-matlab-7-0-1-r14sp1#:~:text=Accepted%20Answer,-MathWorks%20Support%20Team&text=The%20SORTROWS%20function%20offers%20the,second%20argument%20to%20the%20function.
Thank you once again to both of you.
Regards

Sign in to comment.


KSSV
KSSV on 12 Oct 2020
A = rand(10,5) ;
[m,n] = size(A) ;
B = A ;
for i = 1:n
B(:,i) = sort(A(:,i),'descend') ;
end

Categories

Find more on Creating and Concatenating 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!