我们都知道如何使用像A1:n:end这样的索引来选择其他n个元素。假设我有一个1000x1的数组,我把它(在概念上)分成5个元素的块,我想选择每隔一个块,即选择A1,A2,A3,A4,A5和A11,A12,A13,A14,A15,...,你就明白了。
当然,我可以预先生成一个索引数组并使用它,但我想知道是否有更方便的方法。
发布于 2016-03-09 06:44:48
因此,实际上您正在尝试创建一个方波索引函数,例如
n = 1:numel(A); %// assuming A is a vector (i.e. 1D)
w = 2^-3;
idx = sin(2*pi*w*n) > 0;
然后调优w
以更改块宽度。
另一个选择
w = 3
idx = floor(mod(0:n-1),2*w)/w);
发布于 2016-03-09 16:53:59
您可以将数组重塑为矩阵:
A = rand(1000,1);
n = 5;
B = reshape(A,n,[]);
现在B
的每一列都是一个组:
B(:,1) == A(1:5)
B(:,2) == A(6:10)
...
从那里,您可以选择B的每隔一列,就像选择向量一样:
B = B(:,1:2:end);
https://stackoverflow.com/questions/35883848
复制