这个问题可能非常简单,但我不清楚如何从Matlab文档中做到这一点。
我需要创建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中定义这样的矩阵,如果我能以极坐标形式完成所有事情,生活会更容易。
巴兹
答案 0 :(得分:2)
我认为这样的事情可以解决它:
N = 4;
[X Y] = meshgrid(1:N);
W = exp(1i*2*pi*X.*Y/N)/sqrt(N)
答案 1 :(得分: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都是想象单位。
答案 2 :(得分:1)
它可以通过矩阵乘法然后(逐元素)求幂来解决:
1/sqrt(n)*exp(2*pi*1i/n*(1:n).'*(1:n))