swap values of an array

81 vues (au cours des 30 derniers jours)
Mazhar Ali
Mazhar Ali le 1 Fév 2019
Commenté : madhan ravi le 1 Fév 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.

Réponses (2)

Guillaume
Guillaume le 1 Fév 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 commentaires
Luna
Luna le 1 Fév 2019
+1
madhan ravi
madhan ravi le 1 Fév 2019
O([v v+1])=O([v+1 v]) % also this works

Connectez-vous pour commenter.


Luna
Luna le 1 Fév 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

Catégories

En savoir plus sur Read, Write, and Modify Image dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by