从给定向量创建下三角矩阵

时间:2012-02-12 03:00:04

标签: matlab matrix vectorization

我的问题如下:我有一个矢量

  

[3,4,5,6,7]

我想创建一个矩阵

3 0 0 0 0   
3 4 0 0 0   
3 4 5 0 0   
3 4 5 6 0   
3 4 5 6 7 

但是,由于我最终会得到的大小问题,我不想使用for循环。 我在考虑使用flipudfliprlhankeltoeplitz函数,但无法找到解决方案。

2 个答案:

答案 0 :(得分:6)

试试这个:

x = [3,4,5,6,7]
tril(ones(length(x),1)*x)

ans =

 3     0     0     0     0
 3     4     0     0     0
 3     4     5     0     0
 3     4     5     6     0
 3     4     5     6     7

答案 1 :(得分:1)

如果A是你的矢量,你可以

M = repmat(A,length(A),1)。* tril(ones(length(A),length(A)),0)