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中的虚数没有什么特别之处。但有一个建议:不要使用变量名 i 和 j。i 和 j 都是虚数单位。

于 2013-11-11T19:22:29.093 回答
1

它可以通过矩阵乘法然后(元素方式)求幂来解决:

1/sqrt(n)*exp(2*pi*1i/n*(1:n).'*(1:n))
于 2013-11-11T22:20:15.480 回答