如何在Matlab中定义Polar形式的复矩阵

时间:2013-11-11 19:09:00

标签: matlab

这个问题可能非常简单,但我不清楚如何从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中定义这样的矩阵,如果我能以极坐标形式完成所有事情,生活会更容易。

巴兹

3 个答案:

答案 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))