2017-07-20 5 views
1

Ich habe folgende Kovarianzmatrixnan in Kovarianzmatrix

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 

Ich mag diese Matrix filtern, so dass nur die Spalten und Zeilen, die nicht NaN sind bleiben, gibt es eine Möglichkeit, dies zu tun, ohne verschachtelt zu haben Schleifen?

so soll dies werden

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

vielen Dank

Antwort

0

Um ohne NaN Zeilen in Matrix A herausziehen, dies zu tun:

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

Um Spalten in Matrix A ohne NaN herausziehen, dies zu tun:

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

Leider können Sie sie nicht mischen und abgleichen, wie Sie in Ihrem Beispiel versuchen, wenn Sie manchmal Zeilen mit NaN entfernen, während Spaltenwerte mit NaN beibehalten werden und manchmal Spalten mit NaN entfernen und Zeilenwerte beibehalten.