【问题标题】:nan in covariance matrix协方差矩阵中的 nan
【发布时间】:2017-12-26 07:00:38
【问题描述】:

我有以下协方差矩阵

    a       b       c       d
a   0.0161  0.0009  0.0008  0.0000001
b   0.0009  0.0163     NaN     0.0006
c   0.0008     NaN   0.0209       NaN
d   0       0.0006     NaN     0.0077

我想过滤这个矩阵,以便只保留那些非 NaN 的列和行,有没有办法在没有嵌套循环的情况下做到这一点?

所以这应该变成

    a       b          d
 a  0.0161  0.0009  0.0000001
 b  0.0009  0.0163  0.0006
 d  0       0.0006  0.0077

非常感谢

【问题讨论】:

    标签: matlab nan covariance


    【解决方案1】:

    要在没有 NaN 的情况下提取矩阵 A 中的行,您可以这样做:

    A = A(~sum(isnan(A),2),:);

    要在没有 NaN 的情况下提取矩阵 A 中的列,您可以这样做:

    A = A(:,~sum(isnan(A),1));

    不幸的是,您不能像在示例中那样混合和匹配它们,有时您使用 NaN 删除行,同时使用 NaN 保留列值,有时您使用 NaN 删除列并保留行值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 2014-03-06
      • 1970-01-01
      相关资源
      最近更新 更多