MATLAB:如何忽略CORR函数中的NaN值?

时间:2018-01-26 03:18:58

标签: matlab nan correlation

我在MATLAB中遇到的问题与CORR函数中NAN值之间报告的其他问题相反。

如果我有一个矩阵A = [1; 2; 3; 4]和一个矩阵B = [3; 5; 7; 8],则相关系数(A,B)为0.9898.Ok。< / p>

但是,如果B中存在NaN值,例如:B = [3; 5; 7; NaN],则相关性corr(A,B)将是NaN而不是1.0000(即相关性不是AN(1; 2; 3)和B(3; 5; 7)的NaN值。

我可以做些什么来计算corr函数,忽略这个NaN值,使它给出答案不同的&#34; NaN&#34;?

2 个答案:

答案 0 :(得分:1)

许多统计函数都有忽略NaN值的变体,我不知道$model->postTags->each->delete()是否也这样做。但你可以随便伪造它:

corr

答案 1 :(得分:1)

您可以在corr参数设置为rows的情况下调用complete函数。来自official documentation

'complete' uses only rows with no missing values

例如:

A = [1;2;3;4];
B = [3;5;7;NaN];
r = corr(A,B,'rows','complete')

输出:

r =
     1.0000