Value swapping

2 views (last 30 days)
developer
developer on 8 Sep 2011
Hello,
I have a matrix
x =
7 8
7 13
1 7
3 7
i want to search all 7 and shift to the first column and the corresponding value to the other coloumn, like
x =
7 8
7 13
7 1
7 3

Accepted Answer

Grzegorz Knor
Grzegorz Knor on 8 Sep 2011
x(x(:,2)==7,:) = fliplr(x(x(:,2)==7,:))
  2 Comments
developer
developer on 8 Sep 2011
Thanks :)
Grzegorz Knor
Grzegorz Knor on 8 Sep 2011
similar solution:
x(x(:,2)==7,end:-1:1) = x(x(:,2)==7,:)

Sign in to comment.

More Answers (1)

Paulo Silva
Paulo Silva on 8 Sep 2011
x = [ 7 8
7 13
1 7
3 7]
f2=find(x(:,2)==7)+size(x,1);
f1=find(x(:,1)~=7);
tmp1=x(f1);
x(f1)=x(f2);
x(f2)=tmp1;
x
Grzegorz Knor solution seems to be better, I didn't test it.

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!