我的问题如下:我有一个矢量
[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循环。
我在考虑使用flipud
,fliprl
,hankel
和toeplitz
函数,但无法找到解决方案。
答案 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)