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
入力引数
2 次元数値行列として指定する入力行列。A は完全またはスパースです。
データ型: single | double
複素数のサポート: あり
'lower' または 'upper' として指定する、バンド幅の種類。
下方のバンド幅 (主対角の下) の場合、
'lower'を指定します。上方のバンド幅 (主対角の上) の場合、
'upper'を指定します。
出力引数
非負の整数スカラーとして返される、下方または上方のバンド幅。
typeが'lower'の場合、0≤B≤size(A,1)-1。typeが'upper'の場合、0≤B≤size(A,2)-1。
非負の整数スカラーとして返される、下方のバンド幅。lower の範囲は、0 ≤ lower ≤ size(A,1)-1 です。
非負の整数スカラーとして返される、上方のバンド幅。upper の範囲は、0 ≤ upper ≤ size(A,2)-1 です。
詳細
行列の上方と下方のバンド幅は、非ゼロ値をもつ最後の対角 (それぞれ主対角の上または下) を見つけることにより測定されます。
つまり、要素 Aij をもつ行列 A では、次のようになります。
上方のバンド幅 B1 は、 で常に となる最小の数値。
下方のバンド幅 B2 は、 で常に となる最小の数値。
この測定は、バンド内の中間にある対角がすべてゼロであってはならないということではなく、非ゼロ値を含む最後の対角の位置に着目するものです。慣例により、空行列の上方および下方のバンド幅は両方ともゼロです。
ヒント
行列が特定の上方および下方のバンド幅内にあるかどうかをテストするには、
isbanded関数を使用します。
拡張機能
使用上の注意および制限:
スパース行列の場合、入力引数
typeは定数でなければなりません。
使用上の注意および制限については、「C/C++ コード生成」セクションを参照してください。GPU コード生成にも同様の、使用上の注意および制限が適用されます。
bandwidth 関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
bandwidth 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
bandwidth 関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2014a で導入bandwidth 関数では、スパース行列入力の C/C++ コード生成がサポートされます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)