1

我正在尝试使用 matlab构造一个范德蒙德矩阵。

我的输入向量是

t = [ 1 2 3 4 ]'

我使用vander 函数的输出是:

ans =

 1     1     1     1
 8     4     2     1
27     9     3     1
64    16     4     1

现在,如果我没记错的话,有问题的向量的范德蒙德矩阵应该是:

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

谢谢。

4

2 回答 2

11

维基百科和 Mathworld 同意你的观点。但是,MATLAB 文档说:

A = vander(v) 返回 Vandermonde 矩阵,其列是向量 v 的幂,即 A(i,j) = v(i)^(nj),其中 n = length(v)。

我不知道为什么 The Mathworks 会这样做。您可以使用它fliplr来达到预期的效果。

于 2012-11-19T11:13:12.567 回答
-1

只需翻转矩阵(左/右)即可获得您想要的矩阵。

于 2012-11-19T11:08:42.577 回答