Matlab: 优雅的方法提取(分割)数组元素

3

我需要将一个一维数组中的元素分为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

有没有更优雅的方法来做这个?由于是用于学术目的,所以越简洁越好。
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

正是我正在输入的内容。+1 - Jonas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接