필터 지우기
필터 지우기

How can I sort a cell array according to one column's order?

조회 수: 20 (최근 30일)
Sherwin
Sherwin 2016년 10월 31일
댓글: Alexandra Harkai 2016년 10월 31일
Hi, I have a cell array of (50, 2), each cell in the first column contains a 4x960 matrix but the cells in the second column are 1x1 numbers. Each cell in the second column shows the rank for the matrix in the same row of the cell array. For example cell(1,1) is a 4x960 matrix and it's rank is in cell(1,2). I want to sort this cell array according to the rank(second) column, meaning that if a matrix (in the first column) has the highest rank(in the second column) and needs to be moved to the last row(descending order), it's matrix in the first column should move with it to the last row, too. Would you please help me?

답변 (1개)

Alexandra Harkai
Alexandra Harkai 2016년 10월 31일
There may be a conflict in what you define to be of 'descending order':
"if a matrix (in the first column) has the highest rank(in the second column) and needs to be moved to the last row(descending order), it's matrix in the first column should move with it to the last row, too"
This example goes with the "first row will have the smallest rank" way:
A; % this is the input cell array
[ranks_ordered, idx] = sort(cell2mat(A(:,2)));
B = A(idx,:);
sort returns the sorting indices as the second output argument, which is then used to re-sort the original cell array.
  댓글 수: 4
Sherwin
Sherwin 2016년 10월 31일
Thanks a ton for everything.
Alexandra Harkai
Alexandra Harkai 2016년 10월 31일
Np, hope that explains all.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by