isbanded
行列が指定したバンド幅内かどうかを判別する
説明
例
正方行列のテスト
主対角の上下に非ゼロの対角をもつ 5 行 5 列の正方行列を作成します。
A = [2 3 0 0 0; 1 -2 -3 0 0; 0 -1 2 3 0; 0 0 1 -2 -3; 0 0 0 -1 2]
A = 5×5
2 3 0 0 0
1 -2 -3 0 0
0 -1 2 3 0
0 0 1 -2 -3
0 0 0 -1 2
下方と上方の両方のバンド幅を 1
として指定して、行列が三重対角行列であるかどうかをテストします。
isbanded(A,1,1)
ans = logical
1
主対角線上および主対角線の上下の対角線上にのみに非ゼロ要素があるので、この行列は三重対角です。
下方のバンド幅を 0
として指定して、行列の主対角線の下側に値 0 の要素のみがあるかどうかをテストします。
isbanded(A,0,1)
ans = logical
0
行列の主対角線の下側に非ゼロ要素があるので、結果は logical 0
(false
) になります。
非正方行列のテスト
3 行 5 列の行列を作成します。
A = [1 0 0 0 0; 2 1 0 0 0; 3 2 1 0 0]
A = 3×5
1 0 0 0 0
2 1 0 0 0
3 2 1 0 0
行列の主対角線の上側に値 0 の要素のみがあるかどうかをテストします。
isbanded(A,2,0)
ans = logical
1
主対角の上側の要素がすべてゼロなので、結果は logical 1
(true
) になります。
スパース ブロック行列のテスト
100 行 100 列のスパース ブロック行列を作成します。行列の下方と上方のバンド幅が 1
以内であるかどうかをテストします。
B = kron(speye(25),ones(4)); isbanded(B,1,1)
ans = logical
0
主対角の中心にある非ゼロ ブロックが 2 行 2 列よりも大きいので、結果は logical 0
(false
) です。
行列の下方と上方のバンド幅が 3
以内であるかどうかをテストします。
isbanded(B,3,3)
ans = logical
1
非ゼロ対角ブロックが 4 行 4 列なので、行列の上方と下方のバンド幅は 3
です。
入力引数
A
— 入力配列
配列
入力配列。A
の次元数が 2 を超えている場合、isbanded
は logical 0
(false
) を返します。
データ型: single
| double
| logical
複素数のサポート: あり
lower
— 下方のバンド幅
非負の整数スカラー
非負の整数スカラーとして指定される下方のバンド幅。下方のバンド幅は、主対角の下側にある非ゼロの対角の数です。境界対角 diag(A,-lower)
の下側に非ゼロの要素がある場合、isbanded
は logical 0
(false
) を返します。
upper
— 上方のバンド幅
非負の整数スカラー
非負の整数スカラーとして指定された上方のバンド幅。上方のバンド幅は、主対角の上側にある非ゼロの対角の数です。境界対角 diag(A,upper)
の上側に非ゼロの要素がある場合、isbanded
は logical 0
(false
) を返します。
ヒント
関数
bandwidth
を使用して、指定した行列の上方と下方のバンド幅を求めます。isbanded
を使用して、適切な上方と下方のバンド幅を指定し、いくつかの異なる行列構造をテストします。次の表に、よく使用されるテストの一部を示します。下方のバンド幅
上方のバンド幅
関数呼び出し
行列構造
0
0
isbanded(A,0,0)
対角行列
1
1
isbanded(A,1,1)
三重対角行列
0
size(A,2)
isbanded(A,0,size(A,2))
上三角行列
size(A,1)
0
isbanded(A,size(A,1),0)
下三角行列
1
size(A,2)
isbanded(A,1,size(A,2))
上ヘッセンベルグ行列
size(A,1)
1
isbanded(A,size(A,1),1)
下ヘッセンベルグ行列
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
コード生成では、この関数のスパース行列入力はサポートされません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
関数 isbanded
は 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)