swap values of an array

84 visualizaciones (últimos 30 días)
Mazhar Ali
Mazhar Ali el 1 de Feb. de 2019
Comentada: madhan ravi el 1 de Feb. de 2019
Hi! Every one
I have an array O = [11 12 13 21 14 22 23 31 25 24 32 33 34] ;
I want to swap a value with its adjacent value at two positions.The postions are defined by vector
v=[5 10]
I want output to be like
out = [11 12 13 21 22 14 23 31 25 32 24 33 34];
The number 14 is replaced by its adjacent 22 at postion 5.
Similarly,
The number 24 is replaced by its adjacent 32 in posioton 10.

Respuestas (2)

Guillaume
Guillaume el 1 de Feb. de 2019
Trivially done:
O = [11 12 13 21 14 22 23 31 25 24 32 33 34];
v = [5 10];
O([v;v+1]) = O([v+1;v]); %v must be a row vector for this to work.
  2 comentarios
Luna
Luna el 1 de Feb. de 2019
+1
madhan ravi
madhan ravi el 1 de Feb. de 2019
O([v v+1])=O([v+1 v]) % also this works

Iniciar sesión para comentar.


Luna
Luna el 1 de Feb. de 2019
Hi Mazhar Ali,
Try this below:
for i = 1:numel(v)
temp = O(v(i));
replacemnt = O(v(i)+1);
O(v(i)) = replacemnt;
O(v(i)+1) = temp;
end

Categorías

Más información sobre Read, Write, and Modify Image en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by