rdl*_*dlu 3 arrays matlab split range
我必须从数组(1D)中拆分64个块,第一个元素(DC)和另外63个元素(AC)在单独的数组中.
我在上面制作了UGLY代码:
%split DC from AC
n = 8^2;
DC = zigZagLinha(1 : n : end);
AC = blkproc(zigZagLinha, [1 n],'returnsTheOther63');
Run Code Online (Sandbox Code Playgroud)
;
function array=returnsTheOther63(array64)
array = array64(2:64);
end
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式来做到这一点?这是为了学术目的,所以,越干净,越好.
你可以简单地重塑它:
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
Run Code Online (Sandbox Code Playgroud)