如何在MATLAB中基于矢量创建三角矩阵?

Sha*_*mer 11 matlab matrix triangular

假设我有一个像这样的矢量:

A = [101:105]
Run Code Online (Sandbox Code Playgroud)

这是真的:

[ 101, 102, 103, 104, 105 ]
Run Code Online (Sandbox Code Playgroud)

我只想使用矢量/矩阵函数和运算符来生成矩阵:

101 102 103 104 105
102 103 104 105 0
103 104 105 0   0
104 105 0   0   0
105 0   0   0   0
Run Code Online (Sandbox Code Playgroud)

或以下矩阵:

101 102 103 104 105
0   101 102 103 104
0   0   101 102 103
0   0   0   101 102
0   0   0   0   101
Run Code Online (Sandbox Code Playgroud)

任何人的想法?

(我在MATLAB中非常新手,但我一直背负着这些东西...)

小智 25

hankel(A) 会得到第一个矩阵

triu(toeplitz(A)) 会得到你的第二个.

--Loren