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
0 个评论
采纳的回答
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 Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!