在MATLAB中更改矩阵中行的顺序

时间:2013-03-01 02:53:24

标签: matlab matrix

我需要转换矩阵:

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中实现这个目标?

2 个答案:

答案 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,:)]