我有以下协方差矩阵
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
非常感谢
要在矩阵 A 中拉出没有 NaN 的行,您可以执行以下操作:
A = A(~sum(isnan(A(,2(,:);
要提取矩阵 A 中没有 NaN 的列,您可以执行以下操作:
A = A(:,~sum(isnan(A(,1((;
不幸的是,您无法像在示例中尝试的那样混合和匹配它们,有时您使用 NaN 删除行,同时使用 NaN 保留列值,有时您使用 NaN 删除列并保留行值。