协方差矩阵中的nan

时间:2017-07-20 14:06:06

标签: matlab nan covariance

我有以下协方差矩阵

$(function(){
    $.ajaxSetup({
      headers: { 'X-CSRF-Token': $('meta[name="authenticity-token"]').attr('content') }
  });
});

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

所以这应该成为

    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
非常感谢

1 个答案:

答案 0 :(得分:0)

要在没有NaN的矩阵A中拉出行,您可以这样做:

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

要在没有NaN的矩阵A中拉出列,您可以这样做:

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

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