swap values of an array

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

4 votes

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

0 votes

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 Linear Algebra dans Centre d'aide et File Exchange

Tags

Commenté :

le 1 Fév 2019

Community Treasure Hunt

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

Start Hunting!

Translated by