【问题标题】:MATLAB: How to ignore NaN values in the CORR Function?MATLAB:如何忽略 CORR 函数中的 NaN 值?
【发布时间】:2018-07-05 10:30:16
【问题描述】:

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

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

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

我该怎么做才能让它计算 corr 函数而忽略这个 NaN 值,让它给我不同的“NaN”答案?

【问题讨论】:

    标签: matlab nan correlation


    【解决方案1】:

    许多统计函数都有忽略 NaN 值的变体,我不知道 corr 是否也这样做。但你总是可以伪造它:

    indx = ~(isnan(A) | isnan(B));
    corr(A(indx),B(indx));
    

    【讨论】:

      【解决方案2】:

      您可以调用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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 2021-06-15
        • 2018-11-05
        • 2020-10-08
        • 2012-09-09
        • 2020-10-02
        • 2014-09-03
        相关资源
        最近更新 更多