在matlab中生成随机复杂向量

时间:2013-09-18 16:14:19

标签: matlab random vector complex-numbers

我试图用matlab中的n个组件生成一组k,随机,单位,复数向量。

我知道确保生成的矢量是各向同性的,可能存在一些问题。会有类似以下的工作吗?

vectors=exp(2i*pi*rand(k,n)).*randn(k,n);
for i=1:k
    vectors(i,:)=vectors(i,:)/norm(vectors(i,:);
end

感谢您的帮助,

斯坦

1 个答案:

答案 0 :(得分:5)

那应该没问题。关键是多维正态随机变量已经是球对称的(各向同性)。然而,随机角度似乎有点笨重。我只想使用更多randn

vectors = complex(randn(k,n), randn(k,n));

然后继续标准化步骤。这是规范化的矢量化版本:

vectors = bsxfun(@rdivide, vectors, sqrt(sum(vectors.*conj(vectors), 2)));