Shuffling a cell array with constrains

2 vues (au cours des 30 derniers jours)
Varghese
Varghese le 29 Juil 2016
Commenté : Varghese le 29 Juil 2016
I created a cell array with 14 elements repeated 11 times. Now I need to shuffle the array with a constraint that the elements should not repeat in succession (ie, two 'bun' should not come together)
Stimuli={'bun','bin','din','gun','gin','kun','kin','pun','pin','ʃun','ʃin','sun','tun','tin'}; B=repmat (Stimuli,1,11)
Thank you, Varghese

Réponse acceptée

Guillaume
Guillaume le 29 Juil 2016
Modifié(e) : Guillaume le 29 Juil 2016
A brute force approach would work:
while true
Stimuli = Stimuli(randperm(numel(Stimuli))); %shuffle randomly, may contain repetitions
if ~any(strcmp(Stimuli(1:end-1), Stimuli(2:end))) %check for two consecutive identical strings
break; %no identical consecutive strings, exit loop
end
end
  1 commentaire
Varghese
Varghese le 29 Juil 2016
Thank you Guillaume !! It worked !

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by