Sorting cell array of strings wrt. a character

Say I have:
SM={'JJ','AKs','TT','AQs','AKo','AJs','KQs','99','ATs','AQo'}
and I would like to sort it wrt. {XXs}, {YYo} and {the remaining strings} (i.e. strings without 's' or 'o'). How can that be done?

 採用された回答

Sean de Wolski
Sean de Wolski 2012 年 6 月 5 日

0 投票

SM={'JJ','AKs','TT','AQs','AKo','AJs','KQs','99','ATs','AQo'}
idx = cellfun(@(x)any(ismember('so',x)),SM); %which ones have s or o?
v = 1:numel(SM); %index vector
SM([v(~idx) v(idx)]) %extract

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2012 年 6 月 5 日

0 投票

k = cell2mat(cellfun(@(x)find(~cellfun('isempty',regexp(SM,x))),{'s' 'o'},'un',0))
out = SM([k setdiff(1:numel(SM),k)])

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by