NAN用于Matlab中随机序列的相关性

时间:2013-12-16 09:58:19

标签: correlation matlab

我想用Matlab生成2个不相关的信号但是我的结果很奇怪,可能是因为我的经验有限。

我知道有randrandn函数。如果我使用randn生成这两个2,则总是计算2的相关性并且它非常低(正如我所料)。

z1 = randn(1,1000);
z2 = randn(1,1000);
corr(z1,z2) % it returns a very low number as expected

如果我使用rand生成2(或两者),则相关性为NAN

z1 = rand(1,1000);
z2 = rand(1,1000);
corr(z1,z2) % it returns a matrix (instead of vector?!) of NAN

如果我使用rand再次使用2(或两者),但这次生成矩阵而不是矢量,它可以工作,相关矩阵很好。

z1 = rand(1000);
z2 = rand(1000);
corr(z1,z2) % it returns a matrix of finite values

你知道为什么在第二种情况下(带有NAN的那个)我被退回了

  1. 矩阵而不是矢量
  2. 为什么这些都是NAN而不是单个有限值?

1 个答案:

答案 0 :(得分:2)

基本上,corr期望列向量作为输入,corr(X,Y)返回p1-by-p2矩阵,其中包含n-by-p1和n中每对列之间的成对相关系数-by-p2矩阵X和Y. 所以,你要求它计算1000列的相关性,每列只有1个观察值!这就是您收到NaN

的原因