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 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