Sort matrix in specific order
10 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I have created a 288:4 matrix in which the third column consists of the numbers 1,2 and 3. I would like to sort the matrix so that each number in column three is repeated 6 times for 16 times in total while also making sure that
- there will be no 6-digit-blocks of the same number twice in a row (i.e. 1 1 1 1 1 1 ; 2 2 2 2 2 2 ; 1 1 1 1 1 1 and NOT 1 1 1 1 1 1 ; 1 1 1 1 1 1 ; 2 2 2 2 2 2)
- each column is moved with the corresponding content of the other columns in that row (this is why I cannot just create a new matrix with the order I need and replace it with the third column)
I would really appreciate your help!
Thanks a lot in advance Letizia
1 个评论
Image Analyst
2018-2-20
"I have created a 288:4 matrix" Please attach this matrix in a .mat file with the paper clip icon. Also, you have not actually asked an actual question, just made an announcement. Do you have a question?
You say "each column is moved with the corresponding content of the other columns in that row" Well, I have no idea what that means. Tell me again exactly where do you want to move the column? Or do you just want to move all rows together, in synchrony, so that each column is sorted identically to all the other columns?
回答(1 个)
letizia533
2018-2-20
1 个评论
Walter Roberson
2018-2-20
Generally speaking
[~, sort_order] = sort(A(:,appropriate_column_number));
A2 = A(sort_order, :);
另请参阅
类别
在 Help Center 和 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!