matlab corrcoef函数返回NaN

时间:2016-07-10 12:16:38

标签: matlab

我正在尝试使用某些数组来计算corrcoef Kendall,Spearman和Pearson)并输出NaN

有人可以提出方法来了解它失败的地点和原因吗?因为数组太大,我无法查看每个元素。

如果没有,我在哪里可以找到corrcoef整个代码?我已经搜索过,但我找不到它。

2 个答案:

答案 0 :(得分:1)

您的输入中很可能包含NaN。您可以使用NaN检查是否有isnan元素,并使用find查找其索引:

>> A = randn(10,1);
>> A([3,8]) = NaN;
>> find(isnan(A))
ans =
     3
     8

至于查找源代码,您可以在编辑器中突出显示功能名称,然后按ctrl+D。请注意,某些函数是内置函数或mex函数,因此您将无法读取它们的源代码。但corrcoef不是其中之一,因此您可以阅读代码。

答案 1 :(得分:0)

可能是因为其中一个数组中的方差/标准差等于零。因此,在除以std或var的相关系数计算中(无论它是否实现),你实际上除以零,产生NaN。