2014-03-30 43 views
0

我要计算一个矩阵的每一行之间的相关性与它的列的平均值,例如:为什么两个向量之间的相关性在matlab中返回NAN?

a=[1,2,3; 
    4,5,6]; 

mean_column=[2.5;3.5,4.5]; 

但是当我做以下仅返回NaN的。

corr(mean_column,a(1,:)); 
ans = NaN NaN NaN 
     NaN NaN NaN 
     NaN NaN NaN 

我需要从关联向量中提取统计信息,但这些NaN不允许我这样做。发生什么事?有没有正确的方法来取代这些NaNs?

+0

我以为corr2解决了我的问题,但并不总是,我仍然有一些地方NaNs。 :-( – mad

+0

corr的输入是'N-by-P​​1'和'N-by-P​​2'。你需要把样本数放在第一维上(使平均向量成为一列,并且转置'a' )。 – chappjc

回答

1

请参阅下面的代码。

% initiate 2 columns, notice the transpose. 
a=[1,2,3; 4,5,6]'; 

% calculate a column based on mean of a. 
mean_a = mean(a,2); 

corr(mean_a,a)  
ans = 
    1.0000 1.0000