Sorting a cell array of string, based on the order of another

22 ビュー (過去 30 日間)
Sébastien
Sébastien 2011 年 2 月 22 日
コメント済み: Vina B 2016 年 8 月 11 日
I have 2 cell array of string. The content of the cells is exactly the same, only the order is different.
I want to sort one, without changing the order of the other.

採用された回答

Walter Roberson
Walter Roberson 2011 年 2 月 23 日
[tf, idx] = ismember(B,A);
Places where tf are false are places where B is not in A. And of course, B might not cover all of A. If you know that B covers exactly A, then B(idx) should be the same as A

その他の回答 (3 件)

Sébastien
Sébastien 2011 年 2 月 23 日
ismember() is exactly what I needed. Thank you very much!

Walter Roberson
Walter Roberson 2011 年 2 月 22 日
Your title and your description do not agree. Your description has a trivial answer ("just don't use the second variable") so I will answer based on your title;
[sortedvals, sortidx] = sort(FirstCell);
newCell = SecondCell(sortidx);

Sébastien
Sébastien 2011 年 2 月 23 日
No they agree, I've not been clear. I've :
Vector A {'pierre'} {'paul'} {'jacques'}
Vector B {'jacques'} {'pierre'} {'paul'}
I want to get the index on how to reorder B to fit the order of A.
A first solution would be to sort both alphabetically, I could do that, but here the point is that I don't want to reorder A.

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by