3

配列(1D)から、64個のブロックに、最初の要素(DC)と別の63個の要素(AC)を別々の配列に分割する必要があります。

上記の醜いコードを作成しました:

%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 に答える