toeplitz
テプリッツ行列
説明
例
対称テプリッツ行列の作成
非対称テプリッツ行列の作成
指定された列ベクトルと行ベクトルを使用して非対称テプリッツ行列を作成します。列ベクトルと行ベクトルの最初の要素が一致しないため、toeplitz
は警告を表示して対角要素に列を使用します。
c = [1 2 3 4]; r = [4 5 6]; toeplitz(c,r)
Warning: First element of input column does not match first element of input row. Column wins diagonal conflict.
ans = 4×3
1 5 6
2 1 5
3 2 1
4 3 2
複素数の行および列ベクトルを使用してテプリッツ行列を作成します。
c = [1+3i 2-5i -1+3i]; r = [1+3i 3-1i -1-2i]; T = toeplitz(c,r)
T = 3×3 complex
1.0000 + 3.0000i 3.0000 - 1.0000i -1.0000 - 2.0000i
2.0000 - 5.0000i 1.0000 + 3.0000i 3.0000 - 1.0000i
-1.0000 + 3.0000i 2.0000 - 5.0000i 1.0000 + 3.0000i
関数 toeplitz
を使用した循環行列の作成
toeplitz
を使用して循環行列を作成できます。循環行列は、巡回畳み込みなどの用途で使用されます。
toeplitz を使用してベクトル v
から循環行列を作成します。
v = [9 1 3 2]; toeplitz([v(1) fliplr(v(2:end))], v)
ans = 4×4
9 1 3 2
2 9 1 3
3 2 9 1
1 3 2 9
toeplitz
を使用して畳み込み用の循環行列を作成し、離散時間巡回畳み込みを実行します。
周期的入力 x
とシステム応答 h
を定義します。
x = [1 8 3 2 5]; h = [3 5 2 4 1];
列ベクトル c
を作成し、length(c) = length(h)
であるような循環行列を作成します。
c = [x(1) fliplr(x(end-length(h)+2:end))]
c = 1×5
1 5 2 3 8
x
から行ベクトル r
を作成します。
r = x;
toeplitz
使用して、畳み込み行列 xConv
を作成します。h*xConv
で畳み込みを求めます。
xConv = toeplitz(c,r)
xConv = 5×5
1 8 3 2 5
5 1 8 3 2
2 5 1 8 3
3 2 5 1 8
8 3 2 5 1
h*xConv
ans = 1×5
52 50 73 46 64
Signal Processing Toolbox™ がある場合、関数cconv
(Signal Processing Toolbox)を使って循環畳み込みを求めることができます。
Toeplitz
を使用した離散時間畳み込み
toeplitz
を使用して畳み込み用の配列を作成し、離散時間畳み込みを実行します。
入力 x
とシステム応答 h
を定義します。
x = [1 8 3 2 5]; h = [3 5 2];
x
をゼロでパディングして r
を作成します。r
の長さが畳み込みの長さ x + h - 1
になります。
r = [x zeros(1,length(h)-1)]
r = 1×7
1 8 3 2 5 0 0
列ベクトル c
を作成します。列により対角が決まるので、最初の要素を x(1)
に設定します。畳み込みでは length(c)
が length(h)
に等しくなければならないので、c
をパディングします。
c = [x(1) zeros(1,length(h)-1)]
c = 1×3
1 0 0
toeplitz
使用して、畳み込み行列 xConv
を作成します。次に、h*xConv
を使用して畳み込みを求めます。
xConv = toeplitz(c,r)
xConv = 3×7
1 8 3 2 5 0 0
0 1 8 3 2 5 0
0 0 1 8 3 2 5
h*xConv
ans = 1×7
3 29 51 37 31 29 10
conv
を使用して、結果が正しいことを確認します。
conv(x,h)
ans = 1×7
3 29 51 37 31 29 10
入力引数
c
— テプリッツ行列の列
スカラー | ベクトル
テプリッツ行列の列。スカラーまたはベクトルとして指定します。c
と r
の最初の要素が異なる場合、toeplitz
は対角に列の要素を使用します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
複素数のサポート: あり
r
— テプリッツ行列の行
スカラー | ベクトル
テプリッツ行列の行。スカラーまたはベクトルとして指定します。c
と r
の最初の要素が異なる場合、toeplitz
は対角に列の要素を使用します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
複素数のサポート: あり
詳細
テプリッツ行列
テプリッツ行列は対角一定行列です。したがって、対角線に沿ってすべての要素が同じ値をもちます。テプリッツ行列 A では Ai,j = ai–j が成り立ち、結果は次のような形式になります。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
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)