general code for sorting inside cell
Mostra commenti meno recenti
ref=69;
A={[1,2,3,12],[19,34,37,15,33,35,36],[19,20,21,22,23,5,8,11,13,15,17],[37,38,65,40,42,49,66],[5,11,3,12],[69,19,21,22,23],[69,70,75]};
amount=[];
ref_include_index = cellfun(@(v)any(ismember(v,ref)),A);
ref_include_array = A(ref_include_index); % find array that include ref
amount=[ref_include_array{:},amount];
amount=unique(amount);
idv = cellfun(@(v)any(ismember(v,amount)),A);
idvv=A(idv&~ref_include_index);
amount=[idvv{:},amount];
amount=unique(amount);
idr = cellfun(@(v)any(ismember(v,amount)),A);
idrr=A(idr&~idv&~ref_include_index);
amount=[idrr{:},amount];
amount=unique(amount);
idm = cellfun(@(v)any(ismember(v,amount)),A);
idmm=A(idm&~idr&~idv&~ref_include_index);
amount=[idmm{:},amount];
amount=unique(amount);
result=[ref_include_array,idvv,idrr,idmm];
this code sorting A according to ref. if size of A is changing I have to copy and paste this line
idm = cellfun(@(v)any(ismember(v,amount)),A);
idmm=A(idm&~idr&~idv&~ref_include_index);
amount=[idmm{:},amount];
amount=unique(amount);
Is there any way to write better code for this?
2 Commenti
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Shifting and Sorting Matrices in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!