MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by George
on 21 Jun 2013

I have a matrix 2000x3 like this:

1 1 6

1 2 8

1 3 15

....

2 1 10

2 2 20

2 3 13

....

3 1 12

3 2 18

3 3 14

...

...

and i want to reconstruct like this:

1 1 6

1 2 8

1 3 15

....

2 3 13

2 2 20

2 1 10

....

3 1 12

3 2 18

3 3 14

...

...

Please help me..

*No products are associated with this question.*

Answer by Andrei Bobrov
on 25 Jun 2013

Accepted answer

a - your array

a1 = a; n = unique(a(:,1)); for jj = 1:numel(n) if rem(n(jj),2) == 0 t = a1(:,1) == n(jj); a1(t,:) = flipud(a1(t,:)); end end

Answer by Evan
on 24 Jun 2013

M(:,:,2) = flipud(M(:,:,2))

As an example:

M = rand(3,3,3); %random example 3d matrix M(:,:,2) = flipud(M(:,:,2));

Evan
on 26 Jun 2013

In light of George's update in the below comment, this code does not do what he is asking for. http://www.mathworks.com/matlabcentral/answers/79846#comment_156778

## 3 Comments

## Matt J (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79846#comment_156682

I see no difference between the data before and the data after (apart from order).

## Image Analyst (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79846#comment_156686

The middle group has the second column flipped. But that's not enough to figure out what needs to be done in general. And what does this have to do with Image Processing, like the tag says?

## George (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/79846#comment_156778

i tag this question with ''image processing'' because these data come from grayscale image. What i want to do on my matrix is when the first column has an odd number the second and third column stay the same, when i have an even number the second and the third column reverse in order from bottom to top.