how to change this matrix in this manner?

1 view (last 30 days)
how to manipulate this matrix without for loop:
A=[a1,b1,c1,d1.......;a2,b2,c2,d2..........;a3,b3,c3,d3.......;a4,b4,c4,d4....;..]
how to get this:
H=[a1,b1,a2,b2,a3,b3,......;c1,d1,c2,d2,c3,d3,........]
thank you

Accepted Answer

Iain
Iain on 22 May 2013
H = [reshape(reshape(A(:,1:2),[],2)',[],1);reshape(reshape(A(:,3:4),[],2)',[],1)];

More Answers (1)

David Sanchez
David Sanchez on 22 May 2013
If you prefer an extended version:
A = rand(6); % example matrix
H = zeros(size(A,1)/2,size(A,1)*2); % initialize matrix
[n_rows n_cols] = size(A);
col = 1;
row = 1;
while col <= n_cols/2
while row <= n_rows
H(col,(2*row-1)) = A(row,(2*col-1));
H(col,(2*row)) = A(row,col*2);
row = row + 1;
end
col = col + 1;
row = 1;
end

Tags

Community Treasure Hunt

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

Start Hunting!