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

New to MATLAB?

How do i reconstruct a matrix???

Asked by George

George (view profile)

on 21 Jun 2013
Latest activity Answered by George

George (view profile)

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

Matt J (view profile)

on 24 Jun 2013

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

Image Analyst

Image Analyst (view profile)

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

George (view profile)

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

George (view profile)

Products

No products are associated with this question.

3 Answers

Answer by Andrei Bobrov

Andrei Bobrov (view profile)

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

George (view profile)

on 25 Jun 2013

Thank you Andrei!!!

Andrei Bobrov

Andrei Bobrov (view profile)

Answer by Evan

Evan (view profile)

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

Evan (view profile)

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

Evan (view profile)

Answer by George

George (view profile)

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

George (view profile)

Contact us