2014-03-30 37 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