toeplitz
シンボリックなテプリッツ行列
説明
例
テプリッツ行列の生成
次のベクトルからテプリッツ行列を生成します。これらのベクトルはシンボリック オブジェクトではないため、結果は浮動小数点数となります。
c = [1 2 3 4 5 6]; r = [1 3/2 3 7/2 5]; toeplitz(c,r)
ans = 1.0000 1.5000 3.0000 3.5000 5.0000 2.0000 1.0000 1.5000 3.0000 3.5000 3.0000 2.0000 1.0000 1.5000 3.0000 4.0000 3.0000 2.0000 1.0000 1.5000 5.0000 4.0000 3.0000 2.0000 1.0000 6.0000 5.0000 4.0000 3.0000 2.0000
次に、これらのベクトルをシンボリック オブジェクトに変更し、テプリッツ行列を生成します。
c = sym([1 2 3 4 5 6]); r = sym([1 3/2 3 7/2 5]); toeplitz(c,r)
ans = [ 1, 3/2, 3, 7/2, 5] [ 2, 1, 3/2, 3, 7/2] [ 3, 2, 1, 3/2, 3] [ 4, 3, 2, 1, 3/2] [ 5, 4, 3, 2, 1] [ 6, 5, 4, 3, 2]
ベクトルからのテプリッツ行列の生成
次のベクトルからテプリッツ行列を生成します。
syms a b c d T = toeplitz([a b c d])
T = [ a, b, c, d] [ conj(b), a, b, c] [ conj(c), conj(b), a, b] [ conj(d), conj(c), conj(b), a]
すべての要素を実数として指定した場合、結果のテプリッツ行列は対称行列になります。
syms a b c d real T = toeplitz([a b c d])
T = [ a, b, c, d] [ b, a, b, c] [ c, b, a, b] [ d, c, b, a]
計算を続けるため、仮定を syms
を使用して変数を再作成することで消去します。
syms a b c d
複素数値によるテプリッツ行列の生成
複素数を含むベクトルからテプリッツ行列を生成します。
T = toeplitz(sym([1, 2, i]))
T = [ 1, 2, 1i] [ 2, 1, 2] [ -1i, 2, 1]
ベクトルの最初の要素が実数である場合、結果のテプリッツ行列はエルミート行列になります。
isAlways(T == T')
ans = 3×3 logical array 1 1 1 1 1 1 1 1 1
最初の要素が実数でない場合、結果のテプリッツ行列は主対角でエルミートがオフとなります。
T = toeplitz(sym([i, 2, 1]))
T = [ 1i, 2, 1] [ 2, 1i, 2] [ 1, 2, 1i]
isAlways(T == T')
ans = 3×3 logical array 0 1 1 1 0 1 1 1 0
競合する最初の要素を持つベクトルの使用
ベクトルを使用して 1 列目と 1 行目を指定し、テプリッツ行列を生成します。これらのベクトルの最初の要素が異なるため、toeplitz
は警告を発して列の最初の要素を使用します。
syms a b c toeplitz([a b c], [1 b/2 a/2])
Warning: First element of given column does not match first element of given row. Column wins diagonal conflict. ans = [ a, b/2, a/2] [ b, a, b/2] [ c, b, a]
入力引数
詳細
ヒント
シンボリック オブジェクトではない数値引数について
toeplitz
を呼び出すと、MATLAB® 関数toeplitz
が呼び出されます。
バージョン履歴
R2013a で導入