MATLAB で行列の要素を合計する
このチュートリアルでは、MATLAB でループと sum()
関数を使用して行列の要素を合計する方法について説明します。
MATLAB でループを使用して行列の要素を合計する
マトリックスには、2 種類のインデックスがあります。1つは、マトリックスに存在する要素にアクセスするために行と列の番号を指定する必要がある行と列のインデックスです。2つ目は、線形インデックスのみを使用して要素にアクセスできる線形インデックスです。たとえば、以下のコードを参照してください。
m = [2 6 1; 17 19 18]
row_col_index = m(2,3)
linear_index = m(6)
出力:
m =
2 6 1
17 19 18
row_col_index =
18
linear_index =
18
上記のコードでは、両方の種類のインデックスを使用して、行列の最後の要素にアクセスします。線形インデックスでは、要素は最初の列から始まるマトリックスに存在します。したがって、最初の列から数えると、最後の要素は 6 番目のインデックスに存在します。行と列のインデックスを使用して行列を反復するには、2つのループが必要ですが、線形インデックスの場合は、1つのループのみが必要です。たとえば、線形インデックスを使用して行列を反復処理し、すべての要素の合計を見つけましょう。以下のコードを参照してください。
m = [2 6 1; 17 19 18];
total = 0;
for i = 1:numel(m)
total = total + m(i);
end
sumOfElements = total
出力:
sumOfElements =
63
上記では、numel()
関数を使用して、指定された行列に存在する要素の総数を取得し、ループと線形インデックスを使用して、行列に存在するすべての要素の合計を計算しました。
MATLAB の sum()
関数を使用して行列の要素を合計する
行列のすべての要素の合計を見つけるには、sum()
関数を使用できます。行列の場合、sum()
関数を 2 回使用する必要があります。1 回は行用、もう 1 回は列用ですが、ベクトルの場合は、sum()
を 1 回だけ使用する必要があります。たとえば、特定の行列に存在するすべての要素の合計を見つけましょう。以下のコードを参照してください。
m = [2 6 1; 17 19 18];
sumOfElements = sum(sum(m))
出力:
sumOfElements =
63
合計をとる行列の次元を選択することもできます。sum()
関数の詳細については、このリンクを確認してください。