bandwidth
下方および上方の行列のバンド幅
説明
例
三角行列のバンド幅を求める
6 行 6 列の下三角行列を作成します。
A = tril(magic(6))
A = 6×6
35 0 0 0 0 0
3 32 0 0 0 0
31 9 2 0 0 0
8 28 33 17 0 0
30 5 34 12 14 0
4 36 29 13 18 11
type
を 'lower'
に指定して、A
の下方のバンド幅を求めます。主対角の下のそれぞれの対角には非ゼロ要素があるため、結果は 5 になります。
B = bandwidth(A,'lower')
B = 5
type
を 'upper'
に指定して、A
の上方のバンド幅を求めます。主対角の上には非ゼロ要素がないため、結果は 0 になります。
B = bandwidth(A,'upper')
B = 0
スパース ブロック行列のバンド幅を求める
100 行 100 列のスパース ブロック行列を作成します。
B = kron(speye(25),ones(4));
B
の左上から 10 行 10 列の要素のセクションを表示します。
full(B(1:10,1:10))
ans = 10×10
1 1 1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 1 0 0
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
B
の主対角の中央に、1 の 4 行 4 列のブロックがあります。
2 つの出力引数を指定して、B
の下方と上方の両方のバンド幅を求めます。
[lower,upper] = bandwidth(B)
lower = 3
upper = 3
入力引数
A
— 入力行列
2 次元数値行列
2 次元数値行列として指定する入力行列。A
は非スパースまたはスパースです。
データ型: single
| double
複素数のサポート: あり
type
— バンド幅の種類
'lower'
| 'upper'
'lower'
または 'upper'
として指定する、バンド幅の種類。
下方のバンド幅 (主対角の下) の場合、
'lower'
を指定します。上方のバンド幅 (主対角の上) の場合、
'upper'
を指定します。
出力引数
B
— 下方および上方のバンド幅
非負の整数スカラー
非負の整数スカラーとして返される、下方または上方のバンド幅。
type
が'lower'
の場合、0
≤B
≤size(A,1)-1
。type
が'upper'
の場合、0
≤B
≤size(A,2)-1
。
lower
— 下方のバンド幅
非負の整数スカラー
非負の整数スカラーとして返される、下方のバンド幅。lower
の範囲は、0
≤ lower
≤ size(A,1)-1
です。
upper
— 上方のバンド幅
非負の整数スカラー
非負の整数スカラーとして返される、上方のバンド幅。upper
の範囲は、0
≤ upper
≤ size(A,2)-1
です。
詳細
上方と下方のバンド幅
行列の上方と下方のバンド幅は、非ゼロ値をもつ最後の対角 (それぞれ主対角の上または下) を見つけることにより測定されます。
つまり、要素 Aij をもつ行列 A では、次のようになります。
上方のバンド幅 B1 は、 で常に となる最小の数値。
下方のバンド幅 B2 は、 で常に となる最小の数値。
この測定は、バンド内の中間にある対角がすべてゼロであってはならないということではなく、非ゼロ値を含む最後の対角の位置に着目するものです。慣例により、空行列の上方および下方のバンド幅は両方ともゼロです。
ヒント
行列が特定の上方および下方のバンド幅内にあるかどうかをテストするには、関数
isbanded
を使用します。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
コード生成では、この関数のスパース行列入力はサポートされません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
関数 bandwidth
は GPU 配列を完全にサポートしています。この関数を GPU で実行するには、入力データを gpuArray
(Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2014a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)