基于矢量和对角元素的矩阵= 1使用matlab

blu*_*dia 4 matlab

如何创建以下矩阵

1  0  0  0  0 
k1 1  0  0  0 
k2 k1 1  0  0
k3 k2 k1 1  0
k4 k3 k2 k1 1
Run Code Online (Sandbox Code Playgroud)

Jon*_*nas 9

使用TOEPLITZ.

例如

vector = [1 2 3 4 5]; %# replace this with values for [1 k1 k2 k3 k4]
out = toeplitz(vector,[1 0 0 0 0])
out =
     1     0     0     0     0
     2     1     0     0     0
     3     2     1     0     0
     4     3     2     1     0
     5     4     3     2     1
Run Code Online (Sandbox Code Playgroud)

编辑

我的矢量是[k1 k2 k3 k4 k5],我怎么能应用tril或toeplitz?

使用@ gnovice更方便的配方,您可以使用

yourVector = [k1 k2 k3 k4 k5];
tril(toeplitz([1 yourVector(1:4)]))
Run Code Online (Sandbox Code Playgroud)

  • 功能[TRIL](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/tril.html)也可用于创建上述解决方案略有不同的形式:`out = tril( toeplitz([1 k1 k2 k3 k4]));` (3认同)