How can I organize the rows of an array in a specific order?

2 views (last 30 days)
Good morning. I have the following problem. I have a square matrix of N * N (The matrix can be of different size), in the final row of said matrix there are some indices in a certain order, these indices are also in the final column of the matrix but in a different order. What I want is a code that allows me to organize the rows of the matrix in the same order as the final row of the matrix. The purpose of this is to obtain a symmetric matrix.
Example.
Before organizing:
After organizing:
Thank you very much for your help.

Accepted Answer

Sai Sri Pathuri
Sai Sri Pathuri on 28 Feb 2020
Let the square matrix of order NxN be A. In order to obtain symmetric matrix from A, you may try the following:
Sort the elements in the last row of matrix A and get the indices (Ir) of sorted elements
[Sr,Ir] = sort(A(N,:)
Similarly, sort the elements in the last column of matrix A and get indices Ic
[Sc,Ic] = sort(A(:,N)')
Now align the rows of matrix according to the last row of matrix A by
A(Ir,:)= A(Ic,:)

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Products


Release

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!