Matlab:通过置换重塑一个向量?

时间:2015-08-26 19:15:59

标签: matlab permutation

我有以下向量u

u=[a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4];

我想要对u的元素进行置换,以生成以下向量uNew

uNew=[a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4];

除了使用for循环之外,我无法想到这样做:

uNew=[];
for i=1:4
    uNew=[uNew,u(i:4:end)];
end

但我希望内置函数退出?谢谢!

1 个答案:

答案 0 :(得分:3)

将其重塑为一个矩阵,逐列读取,包含您想要的顺序:

n=3 % number of categories (a,b,c)
u2=reshape(u,[],n).'

然后将其转换回矢量:

u2=u2(:);