Shuffling a cell array with constrains

1 次查看(过去 30 天)
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

采纳的回答

Guillaume
Guillaume 2016-7-29
编辑:Guillaume 2016-7-29
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by