Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

How do i reconstruct a matrix???

Asked by George on 21 Jun 2013
Latest activity Answered by George on 14 Oct 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..

3 Comments

Matt J on 24 Jun 2013

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

Image Analyst on 24 Jun 2013

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 on 25 Jun 2013

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.

George

Products

No products are associated with this question.

3 Answers

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

1 Comment

George on 25 Jun 2013

Thank you Andrei!!!

Andrei Bobrov
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));

1 Comment

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

Evan
Answer by George on 14 Oct 2013

i write this matrix to a .txt file and i would like to numerate the lines, for example :

1 1 1 6

2 1 2 8

3 1 3 15

....

50 2 1 10

51 2 2 20

52 2 3 13

....

Please will someone help me?

0 Comments

George

Contact us