0

この質問は非常に単純かもしれませんが、Matlab のドキュメントからこれを行う方法が明確ではありません。

ユニタリ行列 W を作成する必要があります

複雑な形式では、W の j,k 番目のエントリ [W]_j,k は次のとおりです。

[W]_j,k = 1/sqrt(n)exp^(2*pi*i*j*k/n) j,k = 1, 2, . 、n

Matlabでそのような行列を定義するにはどうすればよいですか。極形式ですべてを行うことができれば、生活が楽になります。

バズ

4

3 に答える 3

2

私はこのような何かがそれを解決すると思います:

N = 4;
[X Y] = meshgrid(1:N);
W = exp(1i*2*pi*X.*Y/N)/sqrt(N)
于 2013-11-11T19:15:49.513 に答える
2

を使用した私のソリューションは次のbsxfunとおりです。

n=4;
fn=@(a,b)(1/sqrt(n)*exp(2*pi*1i*a*b/n));
bsxfun(fn,(1:n),(1:n)')

ans =

   0.0000 + 0.5000i  -0.5000 + 0.0000i  -0.0000 - 0.5000i   0.5000 - 0.0000i
  -0.5000 + 0.0000i   0.5000 - 0.0000i  -0.5000 + 0.0000i   0.5000 - 0.0000i
  -0.0000 - 0.5000i  -0.5000 + 0.0000i   0.0000 + 0.5000i   0.5000 - 0.0000i
   0.5000 - 0.0000i   0.5000 - 0.0000i   0.5000 - 0.0000i   0.5000 - 0.0000i

matlab の虚数について特別なことは何もありません。ただし、1 つのアドバイス: 変数名 i および j は使用しないでください。i と j は両方とも虚数単位です。

于 2013-11-11T19:22:29.093 に答える