2012-02-12 59 views
3

我的問題創建下三角矩陣如下:我有一個向量作爲從一個給定矢量

[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循環,因爲我最終會得到的大小問題。 我正在考慮使用flipudfliprl,hankeltoeplitz的功能,但無法找到解決方案。

回答

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 
+0

那麼,我發現另一種方式基於迭戈的答案: tril(repmat(A,lengt h(A),1))但是你的也是正確的!謝謝 – emper 2012-02-12 03:15:15

1

如果A是你的載體,你可以做

M = repmat(A,長度(A),1)* TRIL(一(長度(A),長度(A)),0)

+1

這是幾乎完美的,除了工作,我們需要改變-1到0。我的意思是工作版本是:repmat(A,長度(A),1)* TRIL (長(A),長(A)),0)許多謝謝 – emper 2012-02-12 03:12:04