我有一个向量A = 1:2*N
。我想把它的元素重新排列成另一个这样的向量:
B = [A(1:2), A(N+1:N+2), A(3:4), A(N+3:N+4), ..., A(N-1:N), A(2*N-1:2*N)];
如何在Matlab中最有效地实现这一点?没有循环?
答案 0 :(得分:2)
当N
为偶数时,以下内容将起作用:
N = 4;
A = 1:2*N;
temp = permute(reshape(A,2,[],2), [1,3,2]);
B = temp(:)'
如果N
可以是奇数,我猜你可以用A
填充NaN
,然后在结尾删除B
的最后两个元素?即A(end+1:end+2) = NaN
在开头,然后B = B(1:end-2)
在结尾