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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Amandeep
on 1 Sep 2011

How can I change the following matrix:

[1, 5,0,0; 2,4,0,0; 3, 2,6,4]

to look like:

[1,5; 2, 4; 3,2; 3,6; 3,4]?

Any suggestion would be great. Thanks

*No products are associated with this question.*

Answer by Andrei Bobrov
on 1 Sep 2011

Accepted answer

A =[1, 5,0,0; 2,4,0,0; 3, 2,6,4] [i1 j1] = find(A(:,2:end)) sz = size(A) out = sortrows([A(i1,1) A(sz(1)+sub2ind(sz- [0 1],i1,j1))],1)

more

[i2 j2 c] = find(A) t = j2~=1 out = sortrows([A(i2(t),1) c(t)],1)

variant 3

AA = A(:,2:end) [i1,~] = find(AA) out = sortrows([A(i1,1) reshape(AA(AA~=0),[],1)],1)

Amandeep
on 1 Sep 2011

Thanks for your quick response.

But waht if instead:

A = [1,5,0,0;3,4,0,0;5,2,6,4]

Andrei Bobrov
on 1 Sep 2011

>> A = [1,5,0,0;3,4,0,0;5,2,6,4];

[i2 j2 c] = find(A);

t = j2~=1;

out = [A(i2(t),1) c(t)]

out =

1 5

3 4

5 2

5 6

5 4

Answer by Sivakumaran Chandrasekaran
on 1 Sep 2011

Hi, There is a command named reshape. Check with it.

Regards, Sivakumaran vlsiva@yahoo.co.in

## 0 Comments