メインコンテンツ

norm

ベクトルと行列のノルム

説明

n = norm(v) は、ベクトル vユークリッド ノルムを返します。このノルムは 2 ノルム、ベクトルの大きさ、またはユークリッド長とも呼ばれます。

n = norm(v,p) は、一般化ベクトルの p ノルムを返します。

n = norm(X) は、行列 X の 2 ノルムまたは最大特異値を返します。これはおよそ max(svd(X)) となります。

n = norm(X,p) は、行列 Xp ノルムを返します。ここで p12 または Inf です。

  • p = 1 である場合、n は行列の列の和の最大絶対値となります。

  • p = 2 である場合、n はおよそ max(svd(X)) となります。この値は norm(X) と等価です。

  • p = Inf の場合、n は行列の行の和の最大絶対値となります。

n = norm(X,"fro") は、行列または配列 Xフロベニウス ノルムを返します。

すべて折りたたむ

ベクトルを作成して大さを計算します。

v = [1 -2 3];
n = norm(v)
n = 
3.7417

ベクトルの 1 ノルムを計算します。これは要素の大きさの合計です。

v = [-2 3 -1];
n = norm(v,1)
n = 
6

2 点間の距離を、ベクトル要素間の差のノルムとして計算します。

ユークリッド平面の 2 点の "(x,y)" 座標を表す 2 つのベクトルを作成します。

a = [0 3];
b = [-2 1];

norm を使用して、点間距離を計算します。

d = norm(b-a)
d = 
2.8284

幾何学的には、点間距離は、1 点から別の点に伸長しているベクトルの大きさと等しくなります。

a=0iˆ+3jˆb=-2iˆ+1jˆd(a,b)=||b-a||=(-2-0)2+(1-3)2=8

行列の 2 ノルムを計算します。これは最大の特異値になります。

X = [2 0 1;-1 1 0;-3 3 0];
n = norm(X)
n = 
4.7234

4-D 配列 X のフロベニウス ノルムを計算します。これは列ベクトル X(:) の 2 ノルムと等価です。

X = rand(3,4,4,3);
n = norm(X,"fro")
n = 
7.1247

norm(X,2) はスパース X をサポートしないため、フロベニウス ノルムはスパース行列に対しても有用です。

入力引数

すべて折りたたむ

入力ベクトル。

データ型: single | double
複素数のサポート: あり

入力配列。行列または配列として指定します。ほとんどのノルムのタイプでは、X は行列でなければなりません。ただし、フロベニウス ノルムの計算では、X は配列にすることができます。

データ型: single | double
複素数のサポート: あり

ノルムのタイプ。2 (既定値)、正の実数スカラー、Inf、または -Inf として指定します。p の有効な値とその戻り値は、次の表に示すように norm の最初の入力が行列とベクトルのどちらであるかによって異なります。

メモ

この表は、計算に使用される実際のアルゴリズムは反映していません。

p行列ベクトル
1max(sum(abs(X)))sum(abs(v))
2 max(svd(X))sum(abs(v).^2)^(1/2)
正の実数値スカラーsum(abs(v).^p)^(1/p)
Infmax(sum(abs(X')))max(abs(v))
-Infmin(abs(v))

出力引数

すべて折りたたむ

ノルム値。スカラーとして返されます。ノルムは、要素の大きさの尺度を提供します。慣例により、以下のとおりです。

  • 入力に NaN 値が含まれている場合、normNaN を返します。

  • 空行列のノルムはゼロです。

詳細

すべて折りたたむ

ヒント

  • vecnorm を使用して、行列または配列をベクトルの集合として扱い、指定した次元に沿ってノルムを計算します。たとえば、vecnorm により行列の各列のノルムを計算できます。

拡張機能

すべて展開する

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する