Swap 3 random elements in an array
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Amine Ne
el 20 de Ag. de 2018
Comentada: Amine Ne
el 20 de Ag. de 2018
How do I randomly swap three elements in an array? The element at selected position one will be moved to selected position two, the previous element at selected position two will be moved to position three, and the element at position three will be moved to selected position one.
For example: a=[4 2 3 1 5 7 6] would become anew=[4 2 6 1 3 7 5]
Thank you
0 comentarios
Respuesta aceptada
Steven Lord
el 20 de Ag. de 2018
Use randperm to select 3 elements (without replacement) from your vector.
a = [4 2 3 1 5 7 6]
ind = randperm(numel(a), 3)
a(ind) = a(ind([3 1 2]))
Más respuestas (1)
KALYAN ACHARJYA
el 20 de Ag. de 2018
Editada: KALYAN ACHARJYA
el 20 de Ag. de 2018
% I have tried this only swap two elements or even numbers, definite swap with each other is only possible in even numbers.
a=randperm(7)
idx=randperm(3);
a(idx)=a(fliplr(idx))
I have tried in another way, you can do that
a=randperm(7)
n=randi(5);
new_array=a(:,:);
new_array([n n+1 n+2])=a([n+2 n n+1])
4 comentarios
KALYAN ACHARJYA
el 20 de Ag. de 2018
I have added (Edited answer) another way, pls try, if OK pls confirm it
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!