范德蒙德矩阵矩阵 Matlab 混淆



我正在尝试使用 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

谢谢。

基百科和Mathworld同意你的看法。但是,MATLAB 文档指出:

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

我不知道为什么The Mathworks会这样做。您可以使用fliplr来达到所需的结果。

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

最新更新