1

matlab を使用してvandermonde 行列を構築しようとしています。

私の入力ベクトルは

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

ウィキペディアとマスワールドはあなたに同意します。ただし、MATLAB のドキュメントには次のように記載されています。

A = vander(v) は、列がベクトル v の累乗である Vandermonde 行列を返します。つまり、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 に答える