3

我必须从一个数组 (1D) 中拆分为 64 个块,第一个元素 (DC) 和另外 63 个元素 (AC) 在单独的数组中。

我在上面制作了 UGLY 代码:

%split DC from AC
n = 8^2;
DC = zigZagLinha(1 : n : end);
AC = blkproc(zigZagLinha, [1 n],'returnsTheOther63');

;

function array=returnsTheOther63(array64)
    array = array64(2:64);
end

有没有更优雅的方法来做到这一点?这是为了学术目的,所以,越干净越好。

4

1 回答 1

5

你可以简单地重塑它:

res = reshape( zigZagLinha, 64, [] ); % assuming num of elements can be divided by 64 exactly 
% otherwise some padding should be done...
DC = res(1 ,: ); % collect all first elements
AC = res( 2:end, : ); % AC elements
于 2012-12-16T15:28:11.220 回答