Ich habe eine große Matrix in MATLAB. Jetzt enthalten einige Zeilen nur Nullen.Finden Sie Zeilen, die nur Nullen enthalten
Kann ich die Funktion find
verwenden, um alle Zeilen zu finden, die nur Nullen enthalten?
Ich habe eine große Matrix in MATLAB. Jetzt enthalten einige Zeilen nur Nullen.Finden Sie Zeilen, die nur Nullen enthalten
Kann ich die Funktion find
verwenden, um alle Zeilen zu finden, die nur Nullen enthalten?
Sie können any
verwenden, um Zeilen mit Nicht-Nullen zu finden und das Ergebnis dann zu negieren. Wir verwenden die zweite Eingabe, um anzugeben, dass die Operation auf die Spalten angewendet werden soll (2. Dimension).
row_has_all_zeros = ~any(data, 2)
Wenn Sie die Indizes anstelle des logischen Array möchten, gelten nur find
dem Ergebnis:
indices = find(row_has_all_zeros);
Vielen Dank !! – henry
Wenn Sie möchten, können Sie, indem zunächst eine höhere Geschwindigkeit (je nach Datenmenge) erhalten suchen für partielle Null-Zeilen (in diesem Beispiel Länge 10) und weiter mit der Auswahl von Zeilen.
row_has_first10_zeros = sum(data(:,1:10),2);
row_has_all_zeros = sum(data(~rows,:),2);
indices = find(~row_has_first10_zeros)
indices = indices(~row_has_all_zeros)
n = length(matrix);
Diese Zeile wird die Anzahl der Zeilen in einer Matrix geben.
ids = setdiff(1:n,find(sum(matrix,2)));
ids geben Sie die Zeilennummern (Indizes), die nur Nullen enthalten.
Welche Sprache verwenden Sie? – Mureinik
Matlab. Vergessen, es hinzuzufügen. Vielen Dank. – henry