如何在MATLAB中基于矢量创建三角矩阵?
-
05-07-2019 - |
题
假设我有一个像这样的矢量:
A = [101:105]
这是真的:
[ 101, 102, 103, 104, 105 ]
我想只使用向量/矩阵函数和运算符来生成矩阵:
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
或以下矩阵:
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
任何想法?
(我在MATLAB中非常新手,但我一直背负着这些东西......)
解决方案
hankel(A)
将为您提供第一个矩阵
triu(toeplitz(A))
将为您提供第二个。
- 洛伦
其他提示
我的方法是创建一个矩阵 A
:
101 102 103 104 105 101 102 103 104 105 101 102 103 104 105 101 102 103 104 105 101 102 103 104 105
然后找到一个矩阵 B
,这样当你乘以 A * B
时,你就会得到你想要的结果。首先在纸上做线性代数,然后让Matlab进行计算。
为了生成具有这种规则模式的三角矩阵,请使用toeplitz函数,例如
m=toeplitz([1,0,0,0],[1,2,3,4])
对于另一种情况,请使用 rot90(m)
不隶属于 StackOverflow