我想用Matlab生成2个不相关的信号但是我的结果很奇怪,可能是因为我的经验有限。
我知道有rand
和randn
函数。如果我使用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的那个)我被退回了
答案 0 :(得分:2)
基本上,corr
期望列向量作为输入,corr(X,Y)返回p1-by-p2矩阵,其中包含n-by-p1和n中每对列之间的成对相关系数-by-p2矩阵X和Y.
所以,你要求它计算1000列的相关性,每列只有1个观察值!这就是您收到NaN
。