How to sort a cell array with respect to another cell array?
이전 댓글 표시
Hello:
If I have cell array A:
cellA = {'A', 'B', 'C', 'D'; 1, 2, 3, 4; 5, 6, 7, 8; 9, 1, 2, 3}
and cell array B:
cellB = {'C', 'A', 'D'; 1, 2, 3; 4, 5, 6; 7, 8, 9}
Is there a way to sort cellB with respect to cellA (specifically the first row, but with the capability to look to other rows to tiebreak)? Such that the final cellB array looks something like this, including the null spaces:
cellBFinal = {'A' '' 'C' 'D'; 2 [] 1 3; 5 [] 4 6; 8 [] 7 9}
Thank you!
채택된 답변
추가 답변 (1개)
cellA = {'A', 'B', 'C', 'D'; 1, 2, 3, 4; 5, 6, 7, 8; 9, 1, 2, 3}
cellB = {'C', 'A', 'D'; 1, 2, 3; 4, 5, 6; 7, 8, 9}
[lia,lib] = ismember(cellA(1,:),cellB(1,:))
cellBFinal = cell(size(cellA,2),size(cellB,1))
cellBFinal(:,lia) = cellB(:,lib(lia))
댓글 수: 2
Jon
2023년 6월 27일
@Liam if it is important to you to have all the elements of the first row as char, then @Dyuman Joshi's somewhat more elaborate construction of the empty cell array will be needed. Otherwise can just initialize with all elements as empty doubles.
Liam
2023년 6월 27일
카테고리
도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!