我正在尝试使用 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
来达到所需的结果。
只需翻转矩阵(左/右)即可获得所需的矩阵。