HOWTO · MATLAB
MATLAB での行と列の交換
このチュートリアルでは、MATLAB で行と列を交換する方法を示します。
このページの内容
このチュートリアルでは、MATLAB で行と列を交換する方法を示します。
MATLAB には、行と列を相互に交換するさまざまな方法があります。 このチュートリアルには、MATLAB で行と列を交換するさまざまな方法が含まれています。
Base MATLAB で行と列を入れ替える
Base MATLAB には、行と行、列と列を交換するために使用できる単純な機能があります。 行と行を交換する例を試してみましょう。
% Random 4x6 matrix
A = rand(4,6)
%Swap 1st row with the fourth.
A([4 1],:) = A([1 4],:)
上記のコードは、ランダムな 4x6 行列を作成し、1 番目の行を 4 番目の行と交換します。 出力を参照してください:
ご覧のとおり、1 行目は 4 行目と入れ替わっています。 次に、列について同じ例を試してみましょう。
% Random 4x6 matrix
A = rand(4,6)
%Swap 1st column with the sixth.
A(:,[1 6]) = A(:,[6 1])
コードは似ていると思うかもしれませんが、わずかな違いがあります。 行の場合、A([4 1],:) という式を使用し、列の場合、A(:,[1 6]) のように先頭にコンマとコロン記号を使用します。
このコードの出力を参照してください。
MATLAB でユーザー定義関数を使用して行と列を入れ替える
行と列の両方に使用できる基本 MATLAB 機能を使用して、ユーザー定義関数を作成することもできます。 これが関数です。
swap.m:
function matrix = swap(matrix,dimension,a,b)
if dimension == 1
row_swap = matrix(a,:);
matrix(a,:) = matrix(b,:);
matrix(b,:) = row_swap;
elseif dimension == 2
col_swap = matrix(:,a);
matrix(:,a) = matrix(:,b);
matrix(:,b) = col_swap;
end
上記の関数は 4つのパラメーターを取ります。最初は行列です。 2つ目は、1 が行を意味し、2 が列を意味するディメンションと、行または列のいずれかで互いに交換する 2つの要素です。
この関数で行を交換してみましょう。
% Random 4x6 matrix
A = rand(4,6)
% Swap rows using the swap function
swap(A,1,1,4)
上記のコードは、最初の行を 4 番目の行と交換します。 出力を参照してください:
列を交換するには、次元を 2 に変更する必要があります。例を参照してください。
% Random 4x6 matrix
A = rand(4,6)
% Swap rows using the swap function
swap(A,2,1,6)
上記のコードは、swap 関数を使用して、最初の列を 6 番目の列と交換します。 出力を参照してください:
MATLAB で randperm() 関数と size() 関数の組み合わせを使用して行と列を入れ替える
randperm() メソッドは、指定された行列の整数のランダム置換に使用されます。 これは、マトリックスである 1つのパラメーターのみを取ります。
size() メソッドは、配列の各次元のサイズまたは指定された行列のサイズを返します。 このメソッドは、次のさまざまな方法で使用できます。
size(X)- 配列の各次元のサイズを返します。[m,n] = size(X)- 指定された行列のサイズを 2つの変数で返します。size(X,dim)-X次元のサイズをスカラーdimで返します。[d1,d2,d3,…,dn] = size(X)- 配列のn次元のサイズを個別の変数で返します。
ここで、X は配列、行列、または次元であり、dim は次元のスカラー値です。 この方法の欠点は、行または列がランダムに交換されることです。
このメソッドを使用して行を交換してみましょう。
% Random 4x4 matrix
A = rand(4,4)
% Calling the randperm() and size() methods
% to swap rows
Swapped = A(randperm(size(A, 1)),:)
上記のコードは、行を別の行とランダムに交換します。 出力を参照してください:
A =
0.4574 0.6377 0.2891 0.2548
0.8754 0.9577 0.6718 0.2240
0.5181 0.2407 0.6951 0.6678
0.9436 0.6761 0.0680 0.8444
Swapped =
0.9436 0.6761 0.0680 0.8444
0.4574 0.6377 0.2891 0.2548
0.5181 0.2407 0.6951 0.6678
0.8754 0.9577 0.6718 0.2240
列の交換と同様に、次の例を示します。
% Random 4x4 matrix
A = rand(4,4)
% Calling the randperm() and size() methods
% to swap rows
Swapped = A(:, randperm(size(A, 1)))
上記のコードは、指定された行列の列をランダムに交換します。 出力を参照してください:
A =
0.6022 0.4624 0.3225 0.1759
0.3868 0.4243 0.7847 0.7218
0.9160 0.4609 0.4714 0.4735
0.0012 0.7702 0.0358 0.1527
Swapped =
0.3225 0.6022 0.4624 0.1759
0.7847 0.3868 0.4243 0.7218
0.4714 0.9160 0.4609 0.4735
0.0358 0.0012 0.7702 0.1527