swap values of an array

81 Ansichten (letzte 30 Tage)
Mazhar Ali
Mazhar Ali am 1 Feb. 2019
Kommentiert: madhan ravi am 1 Feb. 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.

Antworten (2)

Guillaume
Guillaume am 1 Feb. 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 Kommentare
Luna
Luna am 1 Feb. 2019
+1
madhan ravi
madhan ravi am 1 Feb. 2019
O([v v+1])=O([v+1 v]) % also this works

Melden Sie sich an, um zu kommentieren.


Luna
Luna am 1 Feb. 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

Kategorien

Mehr zu Read, Write, and Modify Image finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by