我正在尝试使用matlab构建vandermonde matrix。
我的输入向量是
t = [ 1 2 3 4 ]'
我使用vander function的输出是:
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
感谢。
答案 0 :(得分:11)
维基百科和Mathworld同意你的看法。但是,MATLAB documentation说:
A = vander(v)返回其列为幂的Vandermonde矩阵 向量v,即A(i,j)= v(i)^(n-j),其中n =长度(v)。
我不知道为什么Mathworks会这样做。您可以使用fliplr
来获得所需的结果。
答案 1 :(得分:-1)
只需翻转矩阵(左/右)即可获得所需的矩阵。