Info
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
[Help] with randomizing a Permutation
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Neurocognitive Psychology
el 12 de Mzo. de 2020
Cerrada: MATLAB Answer Bot
el 20 de Ag. de 2021
I created an emotion recognition paradigm which shows 144 short video clips of emotional faces.
- 1-36 angry faces
- 37-72 fearful faces
- 73-108 sad faces
- 109-144 neutral faces
I could need help in randomizing those video clips with the restriction that the same emotion is not shown more than 3 times consecutively. In the end I want a randomized numerical sequence containing all numbers from 1 to 144. Each number only shown once.
I'm glad for any help!
0 comentarios
Respuestas (1)
Sai Veeramachaneni
el 17 de Mzo. de 2020
You can use below function to achieve behavior you need.
function sans = getIds()
emotions = zeros(1,144);
emotions=string(emotions);
for i=1:36
emotions(i)="angry";
end
for i=35:72
emotions(i)="fear";
end
for i=73:108
emotions(i)="sad";
end
for i=109:144
emotions(i)="neutral";
end
sans=1:144;%final answer is stored in this
sequence=1:144; %temporary sequence
pointer=144;
i=1;
while i<=144
tem = randi([1,pointer],1);
temp = sequence(tem);
if (i>3 && (emotions(sans(i-1))~=emotions(temp) ||...
emotions(sans(i-2))~=emotions(temp) ||...
emotions(sans(i-3))~=emotions(temp)))|| i<=3
sans(i)=temp;
i=i+1;
[sequence(tem),sequence(pointer)]=deal(sequence(pointer),sequence(tem));
pointer=pointer-1;
end
end
end
0 comentarios
La pregunta está cerrada.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!