我想用matlab構建一個vandermonde matrix。vandermonde矩陣matlab混淆
我輸入向量爲
t = [ 1 2 3 4 ]'
我使用的輸出vander function是:
ans =
1 1 1 1
8 4 2 1
27 9 3 1
64 16 4 1
現在,如果我沒有記錯問題的矢量的Vandermonde矩陣應該是:
1 1 1 1
1 2 4 8
1 3 9 27
1 4 16 64
現在我只是意識到我可以達到我想要的結果使用類似於:
>> fliplr(vander(t))
ans =
1 1 1 1
1 2 4 8
1 3 9 27
1 4 16 64
謝謝。
範德蒙德矩陣中列的順序隻影響一件事 - 即可能構建的結果模型中多項式係數的順序。一旦可以使用任何一種形式並開心,只要你知道什麼出來,以及如何解釋它。 – 2012-11-19 13:06:51
正如一般的提示:看起來你可以用'bsxfun'(@power,t,0:numel(t)-1)創建一個比'vander'快一個數量級的數量級;'(或者如果你願意, bsxfun(@power,t,numel(t)-1:-1:0);')。 –
複製粘貼「vander」的內容甚至更快。 –