我正在尝试使用某些数组来计算corrcoef
Kendall,Spearman和Pearson)并输出NaN
。
有人可以提出方法来了解它失败的地点和原因吗?因为数组太大,我无法查看每个元素。
如果没有,我在哪里可以找到corrcoef整个代码?我已经搜索过,但我找不到它。
答案 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。