我需要转换矩阵:
X = [1 2; 3 4; 5 6; 7 8]
X = 1 2
3 4
5 6
7 8
到
X = [1 2; 5 6; 3 4; 7 8]
X = 1 2
5 6
3 4
7 8
并对具有任意行数的矩阵执行此操作。因此,在具有200行的矩阵中,行101将变为行2,行102将变为行4,依此类推。 我怎样才能在MATLAB中实现这个目标?
答案 0 :(得分:2)
对于行数偶数的数组,执行以下操作:
nRows = size(X,1);
idx = [1:nRows/2;nRows/2+1:nRows];
X_rearranged = X(idx(:),:);
对于行数为奇数的数组,您向nRows
添加1,并使用idx(1:end-1)
代替idx(:)
答案 1 :(得分:-1)
您可以使用:
X = [1 2; 3 4; 5 6; 7 8]
Y = [a(1,:); a(3,:); a(2,:); a(4,:)]