行列の行の MATLAB ノルム
このチュートリアルでは、MATLAB で vecnorm()
または sqrt()
および sum()
関数を使用して行列の各行のノルムを見つける方法について説明します。
vecnorm()
関数を使用した行列の行の MATLAB ノルム
Matlab の vecnorm()
関数を使用して、行列の各行のノルムを取得できます。 この関数は、ベクトル、行列、または多次元配列のユークリッドおよび一般ベクトル ノルムを見つけることができます。
ユークリッド ノルムの場合、vecnorm()
関数はすべての値の 2 乗を取り、それらの合計を求めてから、合計の平方根を取ります。 一般的なベクトル ノルムの場合、vecnorm()
関数は入力された値を要素の累乗として使用します。
関数の基本的な構文を以下に示します。
output = vecnorm(matrix)
output = vecnorm(matrix, p)
最初の構文は、行列のユークリッド ノルムまたは 2-ノルム
を返します。 2 番目の構文は、一般的なベクトル ノルム、または p
の値が 1、2、または Inf
である p-norm
を返します。
p
の値が 1 の場合、ノルムは行列の絶対値の合計に等しくなります。 p
の値が 2 の場合、一般ベクトル ノルムはユークリッド ノルムに等しくなり、値が無限大の場合、ノルムは各行列列の最大値に等しくなります。
ベクトルの場合、出力はベクトルのノルムとなる単一の値になり、配列の場合、関数は配列の最初の次元に沿ってノルムを取り、そのサイズは 1に等しい。
vecnorm()
関数に行列を渡すと、行列に存在する各列のノルムが返されますが、vecnorm()
関数の別の構文を使用して、a の各行のノルムを見つけることができます。 マトリックス。
行列の各行のノルムを見つけるための vecnorm()
関数の構文を以下に示します。
output = vecnorm(matrix, normType, dimension);
この構文では、2 番目の引数はノルム タイプであり、その値は正のスカラーにすることができます。 デフォルトでは、2 番目の引数の値は 2 に設定されています。
3 番目の引数は、ノルムが計算される行列の次元です。 行列の場合、行の次元に 2、列の次元に 1 を使用できます。
たとえば、列と行の次元に沿って行列のノルムを見つけてみましょう。 以下のコードと出力を参照してください。
clc
clear
m = magic(3)
n1 = vecnorm(m)
n2 = vecnorm(m,2,2)
出力:
m =
8 1 6
3 5 7
4 9 2
n1 =
9.4340 10.3441 9.4340
n2 =
10.0499
9.1104
10.0499
上記のコードでは、magic()
関数を使用して 3 行 3 列の行列を作成し、行と列のノルムを見つけました。 上記の出力では、vecnorm(m)
関数が各列のノルムを返し、vecnorm(m,2,2)
関数が行列の各行のノルムを返していることがわかります。
sqrt()
および sum()
関数を使用した行列の行の MATLAB ノルム
sqrt()
および sum()
関数を使用して行列の行のノルムを見つけることもできます。 行列の行のノルムを見つけるために使用されるアルゴリズムを知っています。最初に値の 2 乗を取り、次に sum()
関数を使用してそれらの合計を見つける必要があります。その後、平方根を取ることができます。 sqrt()
関数を使用します。
たとえば、行の次元に沿って行列のノルムを見つけてみましょう。 以下のコードと出力を参照してください。
clc
clear
m = magic(3)
n1 = sqrt(sum(m.^2,2))
出力:
m =
8 1 6
3 5 7
4 9 2
n1 =
10.0499
9.1104
10.0499
上記のコードでは、m.^2
引数を使用して行列のすべての値の 2 乗を取得し、sum()
関数の 2 番目の引数として 2 を使用して要素の合計を求めました。 行ですが、列のノルムを見つけたい場合は、2 番目の引数として 1 を使用できます。 上記の出力は、ノルムが最初の例と同じであることを示しています。