## question about matrix interleavers??

### mary (view profile)

on 26 May 2013
Accepted Answer by Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

how to interleave a matrix and deinterleave it?? so it gets back to its original state?

the cyclist

### the cyclist (view profile)

on 26 May 2013

I suggest you give more detail and/or a small example of what you mean. I, for one, don't understand specifically what you mean by "interleave".

mary

### mary (view profile)

on 26 May 2013

interleaver: it rearrange or reshape the matrix deinterleaver : it restores the original arrangement of the maatrix

Image Analyst

on 26 May 2013

## Products

No products are associated with this question.

### Azzi Abdelmalek (view profile)

Answer by Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 26 May 2013

you can use reshape function. give an example of matrices you want to interleave

Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 26 May 2013

How do you want to change it?

Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 26 May 2013

There are many function to change your matrix

```flipud
fliplr
rot90
circshift
```
mary

### mary (view profile)

on 26 May 2013

i will try these .. thank you indeed

### Image Analyst (view profile)

Answer by Image Analyst

### Image Analyst (view profile)

on 26 May 2013

Not sure what you mean, but here's one way/interpretation:

```m1 = magic(6)
m2 = ones(10, 6)
columns = size(m1, 2)
m1Rows = size(m1, 1)
m2Rows = size(m2, 1)
m3 = zeros(m1Rows+m2Rows, columns);
% Interleave.  If there's any difference in the number of rows,
% the mismatching rows will be zero.
% You could handle that differently if you want to,
% for example, just append the remaining rows
% of the taller array.
for row = 1 : max([m1Rows, m2Rows])
m3Row = 2 * (row-1)+1;
if row <= m1Rows
m3(m3Row, :) = m1(row, :);
end
if row <= m2Rows
m3(m3Row+1, :) = m2(row, :);
end
end
m3
```