MATLAB Answers

Shuffling a cell array with constrains

4 views (last 30 days)
Varghese on 29 Jul 2016
Commented: Varghese on 29 Jul 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

Accepted Answer

Guillaume on 29 Jul 2016
Edited: Guillaume on 29 Jul 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
  1 Comment
Varghese on 29 Jul 2016
Thank you Guillaume !! It worked !

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!

Translated by