question about matrix interleavers??
1 次查看(过去 30 天)
显示 更早的评论
how to interleave a matrix and deinterleave it?? so it gets back to its original state?
采纳的回答
Azzi Abdelmalek
2013-5-26
you can use reshape function. give an example of matrices you want to interleave
9 个评论
Azzi Abdelmalek
2013-5-26
There are many function to change your matrix
flipud
fliplr
rot90
circshift
更多回答(1 个)
Image Analyst
2013-5-26
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
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interleaving 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!