行列を変換する必要があります:
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でこれを実現するにはどうすればよいですか?
行数が偶数の配列の場合、次のようにします。
nRows = size(X,1);
idx = [1:nRows/2;nRows/2+1:nRows];
X_rearranged = X(idx(:),:);
行数が奇数の配列の場合は、に1を追加し、代わりにnRows
を使用しますidx(1:end-1)
idx(:)
次を使用できます。
X = [1 2; 3 4; 5 6; 7 8]
Y = [a(1,:); a(3,:); a(2,:); a(4,:)]